{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "mount_file_id": "1sX1bwOKHvhPkQ6G9D286myfZSpXz6r5R",
      "authorship_tag": "ABX9TyPN61bk8iqbkF5MgqduaTd1",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "gpuClass": "standard",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "9af89d0f44fa4a21b58095e7995c2452": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_99ebc2f74e964ae091adaa86b6101cd2",
              "IPY_MODEL_ee5d01da140143db97914eeb000b050f",
              "IPY_MODEL_5f7f6abd203444e39b3142fe9d6b0834"
            ],
            "layout": "IPY_MODEL_517f6621a4094b3d8d6288b96597fbe8"
          }
        },
        "99ebc2f74e964ae091adaa86b6101cd2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_92ae89d247c4454f82c31b2bc0f2b008",
            "placeholder": "​",
            "style": "IPY_MODEL_dbacb1e16fc94ce9809519dc05895fde",
            "value": "Downloading (…)a8e1d/.gitattributes: 100%"
          }
        },
        "ee5d01da140143db97914eeb000b050f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_05b421be1b5e45beabe5a624ae27e400",
            "max": 1175,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_eb3328d90c474163b81a178fd27cd3ab",
            "value": 1175
          }
        },
        "5f7f6abd203444e39b3142fe9d6b0834": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_fa4b706799e64f5397160c4c70d934d1",
            "placeholder": "​",
            "style": "IPY_MODEL_b11ab2fe5471450dae1b3205cb24fbba",
            "value": " 1.18k/1.18k [00:00&lt;00:00, 68.6kB/s]"
          }
        },
        "517f6621a4094b3d8d6288b96597fbe8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "92ae89d247c4454f82c31b2bc0f2b008": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dbacb1e16fc94ce9809519dc05895fde": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "05b421be1b5e45beabe5a624ae27e400": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "eb3328d90c474163b81a178fd27cd3ab": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "fa4b706799e64f5397160c4c70d934d1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b11ab2fe5471450dae1b3205cb24fbba": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "babf738374ea4b7e9bd142ba4344deb0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_06ef7dd2f89746fabae1a54c9bc4eb33",
              "IPY_MODEL_795e39127e404652902bba25d3d45064",
              "IPY_MODEL_ca0c0f4be89b49b88f4eb8573674ca04"
            ],
            "layout": "IPY_MODEL_89303915c6ee4d43a1d13653a7842970"
          }
        },
        "06ef7dd2f89746fabae1a54c9bc4eb33": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_ecb1c77c47d643e493e430a62c7777e7",
            "placeholder": "​",
            "style": "IPY_MODEL_37ccecc09843493186fb997afbb3e8c5",
            "value": "Downloading (…)_Pooling/config.json: 100%"
          }
        },
        "795e39127e404652902bba25d3d45064": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_48ec49bc638344aab0e13e3c87b1495a",
            "max": 190,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_f1bf6c3d6b40479689df00cccbf2b2c2",
            "value": 190
          }
        },
        "ca0c0f4be89b49b88f4eb8573674ca04": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_8ecc14ad73e843cf878b1b1f9e499028",
            "placeholder": "​",
            "style": "IPY_MODEL_9f25724847d54261b490d0f139dd41e8",
            "value": " 190/190 [00:00&lt;00:00, 7.17kB/s]"
          }
        },
        "89303915c6ee4d43a1d13653a7842970": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ecb1c77c47d643e493e430a62c7777e7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "37ccecc09843493186fb997afbb3e8c5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "48ec49bc638344aab0e13e3c87b1495a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f1bf6c3d6b40479689df00cccbf2b2c2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "8ecc14ad73e843cf878b1b1f9e499028": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9f25724847d54261b490d0f139dd41e8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "0d753b3534e74aedaa8edddd5ab474c4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_260c7130940b48d99327f36f623d3df3",
              "IPY_MODEL_589ef4738ee346398c6b16d7fcbe224f",
              "IPY_MODEL_f28ecd77c2ba4b828d93411d805bb215"
            ],
            "layout": "IPY_MODEL_2f14fe68589e4a9ea4a39212d845d51f"
          }
        },
        "260c7130940b48d99327f36f623d3df3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e6a368ba9dc64686a16e3b119bbbfe13",
            "placeholder": "​",
            "style": "IPY_MODEL_347264a0a2b249f7a7cce852320c54c3",
            "value": "Downloading (…)b20bca8e1d/README.md: 100%"
          }
        },
        "589ef4738ee346398c6b16d7fcbe224f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c2249d885d454eeeb576e969769f7563",
            "max": 10571,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_8b6a25bf4a964bc894c590e5b203f15d",
            "value": 10571
          }
        },
        "f28ecd77c2ba4b828d93411d805bb215": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_50e5f8c912ce4824ae95b120afb7e7f6",
            "placeholder": "​",
            "style": "IPY_MODEL_192250c8a08645de92bf11160b0fdc0a",
            "value": " 10.6k/10.6k [00:00&lt;00:00, 817kB/s]"
          }
        },
        "2f14fe68589e4a9ea4a39212d845d51f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e6a368ba9dc64686a16e3b119bbbfe13": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "347264a0a2b249f7a7cce852320c54c3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c2249d885d454eeeb576e969769f7563": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8b6a25bf4a964bc894c590e5b203f15d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "50e5f8c912ce4824ae95b120afb7e7f6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "192250c8a08645de92bf11160b0fdc0a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "08a9dc7672e444d9bc355ad05f6c269a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_01cf6a49642740c1bc41fd96501d39c0",
              "IPY_MODEL_d9d85ec7c3cf4ac68890aa7eb1acd64c",
              "IPY_MODEL_02a639e00210489380d214e182f35067"
            ],
            "layout": "IPY_MODEL_6557004919d646c887d9627dd22fd844"
          }
        },
        "01cf6a49642740c1bc41fd96501d39c0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_381d64baa8b346f492631e759707d458",
            "placeholder": "​",
            "style": "IPY_MODEL_09886b0bb8574841ae52f1e469886d5b",
            "value": "Downloading (…)0bca8e1d/config.json: 100%"
          }
        },
        "d9d85ec7c3cf4ac68890aa7eb1acd64c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2b951b7a59a84bcfa74ce7a56bdc0c9f",
            "max": 571,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_5d531a267cfc4e77ac7cf174ac128c4e",
            "value": 571
          }
        },
        "02a639e00210489380d214e182f35067": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d8f3de3d218c4867b3177fa7b38dcc9f",
            "placeholder": "​",
            "style": "IPY_MODEL_5590113395af47f3a406d4786256d91e",
            "value": " 571/571 [00:00&lt;00:00, 47.2kB/s]"
          }
        },
        "6557004919d646c887d9627dd22fd844": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "381d64baa8b346f492631e759707d458": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "09886b0bb8574841ae52f1e469886d5b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "2b951b7a59a84bcfa74ce7a56bdc0c9f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5d531a267cfc4e77ac7cf174ac128c4e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "d8f3de3d218c4867b3177fa7b38dcc9f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5590113395af47f3a406d4786256d91e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "ccc221d10b9e47659f71543088e08a71": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_bfbdba27efc94e2f94f67605766b30ef",
              "IPY_MODEL_f27f23d85f1043feb93f3c5df7515e48",
              "IPY_MODEL_6f745350076f40898d22210b6c03631f"
            ],
            "layout": "IPY_MODEL_e5678a44ad834b3dac1641833824c2ce"
          }
        },
        "bfbdba27efc94e2f94f67605766b30ef": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5d120cfa887a416c90b25fbd852154b0",
            "placeholder": "​",
            "style": "IPY_MODEL_f8dbcb62a62f4191a4aaace38e539fea",
            "value": "Downloading (…)ce_transformers.json: 100%"
          }
        },
        "f27f23d85f1043feb93f3c5df7515e48": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4189615b536b4d7db4f2f1bc066ad8b1",
            "max": 116,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_e9a5ee92b0794f93b84cfa41a3846552",
            "value": 116
          }
        },
        "6f745350076f40898d22210b6c03631f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b47b6940aabe49fdb91f2d12cee790f9",
            "placeholder": "​",
            "style": "IPY_MODEL_fd38f78ed42b48898017266dfb6f5011",
            "value": " 116/116 [00:00&lt;00:00, 5.00kB/s]"
          }
        },
        "e5678a44ad834b3dac1641833824c2ce": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5d120cfa887a416c90b25fbd852154b0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f8dbcb62a62f4191a4aaace38e539fea": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4189615b536b4d7db4f2f1bc066ad8b1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e9a5ee92b0794f93b84cfa41a3846552": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "b47b6940aabe49fdb91f2d12cee790f9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fd38f78ed42b48898017266dfb6f5011": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8540aa9b898e4a35947c897437449720": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_3268e2367cc84c6bb20b22b594a8099f",
              "IPY_MODEL_a6dc34c42b964f58997cd02412cad05a",
              "IPY_MODEL_c20dd0720504427886071be0e4a3ce6b"
            ],
            "layout": "IPY_MODEL_7c4f2f756ceb4e28b4466bf6f0e9dd2c"
          }
        },
        "3268e2367cc84c6bb20b22b594a8099f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dd37171882ce4d6792f13f71c6add87c",
            "placeholder": "​",
            "style": "IPY_MODEL_62d3e66c680d49f9884b7616d5d2d81f",
            "value": "Downloading (…)e1d/data_config.json: 100%"
          }
        },
        "a6dc34c42b964f58997cd02412cad05a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e7e5eb7dfd274cf4b65b5533a8c97f54",
            "max": 39265,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_272aa6fd18684f8f9510784a7e04e0b7",
            "value": 39265
          }
        },
        "c20dd0720504427886071be0e4a3ce6b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_bd144b8bbed14b4e9cda8a3dfb939b82",
            "placeholder": "​",
            "style": "IPY_MODEL_06b602d1008b483bba2d68181fb628aa",
            "value": " 39.3k/39.3k [00:00&lt;00:00, 1.70MB/s]"
          }
        },
        "7c4f2f756ceb4e28b4466bf6f0e9dd2c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "dd37171882ce4d6792f13f71c6add87c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "62d3e66c680d49f9884b7616d5d2d81f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "e7e5eb7dfd274cf4b65b5533a8c97f54": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "272aa6fd18684f8f9510784a7e04e0b7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "bd144b8bbed14b4e9cda8a3dfb939b82": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "06b602d1008b483bba2d68181fb628aa": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "37ecdf6cc56d48d39966baa2547ae502": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_7951e5f2ed4141dba20f615fd59d2094",
              "IPY_MODEL_86ea3014d3fb40b79fd08bfc7c93090b",
              "IPY_MODEL_176da6b8e5f440bb878710a0736c9424"
            ],
            "layout": "IPY_MODEL_24a23d612d094a1798b254d66459ed57"
          }
        },
        "7951e5f2ed4141dba20f615fd59d2094": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a83010b39a9941b2b0eac737b27c7aa1",
            "placeholder": "​",
            "style": "IPY_MODEL_726565aa767d44a88ce0b3d1e1df4c27",
            "value": "Downloading pytorch_model.bin: 100%"
          }
        },
        "86ea3014d3fb40b79fd08bfc7c93090b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_108c1e8c38574f9c8cf7fdb3470e6deb",
            "max": 438011953,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_12ad22903db842cc94126cd9384c1836",
            "value": 438011953
          }
        },
        "176da6b8e5f440bb878710a0736c9424": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_93fecbb84dba4ba1b34d111a22042492",
            "placeholder": "​",
            "style": "IPY_MODEL_91a650f6e5c249e99d33963180f60b85",
            "value": " 438M/438M [00:05&lt;00:00, 96.1MB/s]"
          }
        },
        "24a23d612d094a1798b254d66459ed57": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a83010b39a9941b2b0eac737b27c7aa1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "726565aa767d44a88ce0b3d1e1df4c27": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "108c1e8c38574f9c8cf7fdb3470e6deb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "12ad22903db842cc94126cd9384c1836": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "93fecbb84dba4ba1b34d111a22042492": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "91a650f6e5c249e99d33963180f60b85": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b74fb6af81434b25a79e5a1501ba09ef": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_0043ac1d20f1423993650c428d171486",
              "IPY_MODEL_e0b4c424f3fd45f09355400229baa202",
              "IPY_MODEL_06ae60be4caa460a8755139376149ada"
            ],
            "layout": "IPY_MODEL_10eb83219a504910a866ec82f0ec4b53"
          }
        },
        "0043ac1d20f1423993650c428d171486": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_221808209a04422f8d98ee278a7502ef",
            "placeholder": "​",
            "style": "IPY_MODEL_89a39eadd33c49a6a444f7c63649aded",
            "value": "Downloading (…)nce_bert_config.json: 100%"
          }
        },
        "e0b4c424f3fd45f09355400229baa202": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_22de09d47cd341c7bbf6c4e12be80caf",
            "max": 53,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_043fff097a47490f8e702c5f3b27b5f8",
            "value": 53
          }
        },
        "06ae60be4caa460a8755139376149ada": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_580f371f502849899e251b44b52d7da9",
            "placeholder": "​",
            "style": "IPY_MODEL_1c03a229ee634267980d0cea3d0da4fd",
            "value": " 53.0/53.0 [00:00&lt;00:00, 3.85kB/s]"
          }
        },
        "10eb83219a504910a866ec82f0ec4b53": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "221808209a04422f8d98ee278a7502ef": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "89a39eadd33c49a6a444f7c63649aded": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "22de09d47cd341c7bbf6c4e12be80caf": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "043fff097a47490f8e702c5f3b27b5f8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "580f371f502849899e251b44b52d7da9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1c03a229ee634267980d0cea3d0da4fd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "615da32082df414b931bf6875c21189b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_6557085809e24463ac8cdd1c525e4709",
              "IPY_MODEL_27b1e4ccb2154d25a71d8710adbc425b",
              "IPY_MODEL_b3a165c6ac9149159a0c3f319bf879c9"
            ],
            "layout": "IPY_MODEL_9176f72d53d54f92a24bcafb9e75857d"
          }
        },
        "6557085809e24463ac8cdd1c525e4709": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_31bcd4762c764f9ba65ded46e2f446b1",
            "placeholder": "​",
            "style": "IPY_MODEL_4a9073f611d84a07a3c8ed27c6472a01",
            "value": "Downloading (…)cial_tokens_map.json: 100%"
          }
        },
        "27b1e4ccb2154d25a71d8710adbc425b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_bc74c59a6f7447e1917d2574a758ceec",
            "max": 239,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_944eb816bedf412baa3be5e8d7d71da3",
            "value": 239
          }
        },
        "b3a165c6ac9149159a0c3f319bf879c9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_90af63eca9554f0fb09e1db06b7bd120",
            "placeholder": "​",
            "style": "IPY_MODEL_13bab4b2e95d4452bf960863e667cbb7",
            "value": " 239/239 [00:00&lt;00:00, 17.6kB/s]"
          }
        },
        "9176f72d53d54f92a24bcafb9e75857d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "31bcd4762c764f9ba65ded46e2f446b1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "4a9073f611d84a07a3c8ed27c6472a01": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "bc74c59a6f7447e1917d2574a758ceec": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "944eb816bedf412baa3be5e8d7d71da3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "90af63eca9554f0fb09e1db06b7bd120": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "13bab4b2e95d4452bf960863e667cbb7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "0626f0484d354f7ba78aa76ecfa4df07": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_09c106c42cef4e8c8971cf9407187356",
              "IPY_MODEL_5f6ecb1e74d244c7b3b71c79e4f48b06",
              "IPY_MODEL_5694a9d651b745b28e3682cf0f53a8ff"
            ],
            "layout": "IPY_MODEL_741834f6b692451981ce546ef6e21472"
          }
        },
        "09c106c42cef4e8c8971cf9407187356": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d88b33e5fd464af9a32c267fbc7ce3e6",
            "placeholder": "​",
            "style": "IPY_MODEL_f320eef45e4a4bb2b18b5706373c5c65",
            "value": "Downloading (…)a8e1d/tokenizer.json: 100%"
          }
        },
        "5f6ecb1e74d244c7b3b71c79e4f48b06": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d8c59620be844893aa72f21f5a079da0",
            "max": 466021,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_a717f312b9554e73afdb333b74fcce91",
            "value": 466021
          }
        },
        "5694a9d651b745b28e3682cf0f53a8ff": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0c78074026034ed184e4a4b473a50e7d",
            "placeholder": "​",
            "style": "IPY_MODEL_0980c219284e4d32be65069e1200ddc0",
            "value": " 466k/466k [00:00&lt;00:00, 725kB/s]"
          }
        },
        "741834f6b692451981ce546ef6e21472": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d88b33e5fd464af9a32c267fbc7ce3e6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f320eef45e4a4bb2b18b5706373c5c65": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "d8c59620be844893aa72f21f5a079da0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a717f312b9554e73afdb333b74fcce91": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "0c78074026034ed184e4a4b473a50e7d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0980c219284e4d32be65069e1200ddc0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7f773086fb484435be4faf3e5fa25315": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_00ef7a364aef4051be3d4ec6a6b75191",
              "IPY_MODEL_fd1e419eeed643e9a46a015a39330dcc",
              "IPY_MODEL_c5594db8a57f4b2bb6aabf40d80e94fe"
            ],
            "layout": "IPY_MODEL_942b25cfd8054b0d833618d05490ac8a"
          }
        },
        "00ef7a364aef4051be3d4ec6a6b75191": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d6a33f9f17f445b781842f36c21cfcff",
            "placeholder": "​",
            "style": "IPY_MODEL_65c1a81505af43538bde3bdc84e1a6ab",
            "value": "Downloading (…)okenizer_config.json: 100%"
          }
        },
        "fd1e419eeed643e9a46a015a39330dcc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1cc2298cd190422ab4e9f23f924b2c43",
            "max": 363,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_5f13f3e8caaf484695a9d4f42e71dfc3",
            "value": 363
          }
        },
        "c5594db8a57f4b2bb6aabf40d80e94fe": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f9084ce010974bf2af5b4872677fa47c",
            "placeholder": "​",
            "style": "IPY_MODEL_b44b80f935994159b6370d8d95cc6c96",
            "value": " 363/363 [00:00&lt;00:00, 29.8kB/s]"
          }
        },
        "942b25cfd8054b0d833618d05490ac8a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "d6a33f9f17f445b781842f36c21cfcff": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "65c1a81505af43538bde3bdc84e1a6ab": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1cc2298cd190422ab4e9f23f924b2c43": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5f13f3e8caaf484695a9d4f42e71dfc3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "f9084ce010974bf2af5b4872677fa47c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b44b80f935994159b6370d8d95cc6c96": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "87abe7bd80a545b594f319024ead659d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_7a450969e6714f6690afbd96406bf3f5",
              "IPY_MODEL_be110413572b4d398ed2d65d7bab40e2",
              "IPY_MODEL_71bdb94d0b1d4445a3127581c9b57d04"
            ],
            "layout": "IPY_MODEL_4ba7d862c8da4805b70b75ccf4e5d220"
          }
        },
        "7a450969e6714f6690afbd96406bf3f5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_77d3f036c2a841e1b27e93c287e9d82a",
            "placeholder": "​",
            "style": "IPY_MODEL_a9bd1a62aa7244e7a4e61204b9d16aae",
            "value": "Downloading (…)8e1d/train_script.py: 100%"
          }
        },
        "be110413572b4d398ed2d65d7bab40e2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a23541be521d45ca89f3c55777713e02",
            "max": 13123,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_0314a11611bc40209df0173fa4850e9b",
            "value": 13123
          }
        },
        "71bdb94d0b1d4445a3127581c9b57d04": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1bbf054934784eacb3e8f3b71a137cda",
            "placeholder": "​",
            "style": "IPY_MODEL_18b6efae1ce34819bf3399540d691486",
            "value": " 13.1k/13.1k [00:00&lt;00:00, 736kB/s]"
          }
        },
        "4ba7d862c8da4805b70b75ccf4e5d220": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "77d3f036c2a841e1b27e93c287e9d82a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a9bd1a62aa7244e7a4e61204b9d16aae": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "a23541be521d45ca89f3c55777713e02": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "0314a11611bc40209df0173fa4850e9b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "1bbf054934784eacb3e8f3b71a137cda": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "18b6efae1ce34819bf3399540d691486": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8009c62bd1874532a286f66c6979633b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_930a08a3a6144814815cc0ad5a757f2c",
              "IPY_MODEL_fa5d494c529b40eea18fbee2f985a060",
              "IPY_MODEL_969f67e0f4b34d0db568153462d2b9a9"
            ],
            "layout": "IPY_MODEL_33b2bd1235fa4b70bc08fe889d19c025"
          }
        },
        "930a08a3a6144814815cc0ad5a757f2c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b186ad2aff7f44059226a1ca8e4b41cd",
            "placeholder": "​",
            "style": "IPY_MODEL_cc30204ef8dd485a8cffa9340cfb232a",
            "value": "Downloading (…)b20bca8e1d/vocab.txt: 100%"
          }
        },
        "fa5d494c529b40eea18fbee2f985a060": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_85d4a19459f04fa3abca091ac13d59e2",
            "max": 231536,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_3588610eac7c41d0afccc60a20c087d9",
            "value": 231536
          }
        },
        "969f67e0f4b34d0db568153462d2b9a9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0be3e6192c5c4fb6945b471243c855b7",
            "placeholder": "​",
            "style": "IPY_MODEL_61d3c719bb0c460fa0d6b0981307ac8d",
            "value": " 232k/232k [00:00&lt;00:00, 548kB/s]"
          }
        },
        "33b2bd1235fa4b70bc08fe889d19c025": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b186ad2aff7f44059226a1ca8e4b41cd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cc30204ef8dd485a8cffa9340cfb232a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "85d4a19459f04fa3abca091ac13d59e2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "3588610eac7c41d0afccc60a20c087d9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "0be3e6192c5c4fb6945b471243c855b7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "61d3c719bb0c460fa0d6b0981307ac8d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "5023e7ea0e794478a147798ab4ba0f15": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_ac9a54c2041941c18056575cdd7a8552",
              "IPY_MODEL_6a54a0c4369d4383a9981abff3d65204",
              "IPY_MODEL_d7efaccc4b5149d09a19d4c2d7c4d3a5"
            ],
            "layout": "IPY_MODEL_de41ed08dc0f4f5193a04d92895f7005"
          }
        },
        "ac9a54c2041941c18056575cdd7a8552": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_33c243f5a094478fb74b6bcf70887387",
            "placeholder": "​",
            "style": "IPY_MODEL_6dfc23ddd7184d6f9d96acb37a2c3c1d",
            "value": "Downloading (…)bca8e1d/modules.json: 100%"
          }
        },
        "6a54a0c4369d4383a9981abff3d65204": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0bfc311479e3478290d3a8cb1eb38a42",
            "max": 349,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_5848ec578e3b45d4858b9c165882f302",
            "value": 349
          }
        },
        "d7efaccc4b5149d09a19d4c2d7c4d3a5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1651425e91f84bbf8e98b0834639c2a7",
            "placeholder": "​",
            "style": "IPY_MODEL_59cd350331384a6bb9f2105def5ff1a6",
            "value": " 349/349 [00:00&lt;00:00, 24.5kB/s]"
          }
        },
        "de41ed08dc0f4f5193a04d92895f7005": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "33c243f5a094478fb74b6bcf70887387": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6dfc23ddd7184d6f9d96acb37a2c3c1d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "0bfc311479e3478290d3a8cb1eb38a42": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5848ec578e3b45d4858b9c165882f302": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "1651425e91f84bbf8e98b0834639c2a7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "59cd350331384a6bb9f2105def5ff1a6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4616ad080b5d48ecaac94ce3e1b3ed3b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_4f1c487486f542dea51392e3467721f5",
              "IPY_MODEL_61a4367adf0a42ccb6c60776e86c67da",
              "IPY_MODEL_15cbbf2b50eb4bb08b7417af0e25407f"
            ],
            "layout": "IPY_MODEL_764f3f4b605c41c98e9e7ee26c1a4258"
          }
        },
        "4f1c487486f542dea51392e3467721f5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_01040c76761f48f6bda0b95d7d0169e1",
            "placeholder": "​",
            "style": "IPY_MODEL_847fd916b29840eda5d321d339327d09",
            "value": "Batches: 100%"
          }
        },
        "61a4367adf0a42ccb6c60776e86c67da": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4afe6d7adfb64e649897ef66f6111aae",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_21e98d178f3f4d6ea9354bfee91453c9",
            "value": 1
          }
        },
        "15cbbf2b50eb4bb08b7417af0e25407f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_284daeb27eea473f979fcf338277e531",
            "placeholder": "​",
            "style": "IPY_MODEL_499fa5aaf0d74a20b690e0f6b06a4129",
            "value": " 1/1 [00:00&lt;00:00, 22.76it/s]"
          }
        },
        "764f3f4b605c41c98e9e7ee26c1a4258": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "01040c76761f48f6bda0b95d7d0169e1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "847fd916b29840eda5d321d339327d09": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4afe6d7adfb64e649897ef66f6111aae": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "21e98d178f3f4d6ea9354bfee91453c9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "284daeb27eea473f979fcf338277e531": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "499fa5aaf0d74a20b690e0f6b06a4129": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8fd5c8790f4a42afab9c5e7f7df720cc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_a111157a6fda43d0919f3663df3dec45",
              "IPY_MODEL_cbb4ecfa97004babb1dd3baeb32e2bb8",
              "IPY_MODEL_075cd69194904e39ab9dfab7b2f18520"
            ],
            "layout": "IPY_MODEL_8a4ed750c709421aacd1c12ebd01236b"
          }
        },
        "a111157a6fda43d0919f3663df3dec45": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_aa44ab0113614677ab364529ea686ede",
            "placeholder": "​",
            "style": "IPY_MODEL_06b4472d3f5d4693b169049d8f3e786f",
            "value": "Batches: 100%"
          }
        },
        "cbb4ecfa97004babb1dd3baeb32e2bb8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a0b4fb42831943848dd3191c3f0bda7e",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_acfc4cd369ed45f880d41c3519fa9e27",
            "value": 1
          }
        },
        "075cd69194904e39ab9dfab7b2f18520": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_dccefb4b3f7c4132ac9a8ccd4525c9d2",
            "placeholder": "​",
            "style": "IPY_MODEL_b6ed96e76d1747429e034807062d1f91",
            "value": " 1/1 [00:00&lt;00:00,  3.25it/s]"
          }
        },
        "8a4ed750c709421aacd1c12ebd01236b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "aa44ab0113614677ab364529ea686ede": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "06b4472d3f5d4693b169049d8f3e786f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "a0b4fb42831943848dd3191c3f0bda7e": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "acfc4cd369ed45f880d41c3519fa9e27": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "dccefb4b3f7c4132ac9a8ccd4525c9d2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b6ed96e76d1747429e034807062d1f91": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7422074a79774bfeac1f49349eeb5f92": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_cc33cf49d05d412ab8f449ac58cacbd7",
              "IPY_MODEL_667da7b3d9be47c8b253bba2156653d0",
              "IPY_MODEL_b8e0ad83569a40bd83ddd7a7e77f163a"
            ],
            "layout": "IPY_MODEL_725e501c7e8045bbab920884963fcf8d"
          }
        },
        "cc33cf49d05d412ab8f449ac58cacbd7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b1ec07b6f6864896b8d1c1836c96e425",
            "placeholder": "​",
            "style": "IPY_MODEL_686b9e3f9b504daf9f24f28562b7d2a8",
            "value": "Batches: 100%"
          }
        },
        "667da7b3d9be47c8b253bba2156653d0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1a06d78d112e427294ab1c534b7632a0",
            "max": 1,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_2633a4eb2908471096b30b1fbd91ae79",
            "value": 1
          }
        },
        "b8e0ad83569a40bd83ddd7a7e77f163a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_ac1dabd7669045b087cab437b2c9f06b",
            "placeholder": "​",
            "style": "IPY_MODEL_5d7d01d7edb04fcdb8d4b3c24a5ea803",
            "value": " 1/1 [00:00&lt;00:00, 24.37it/s]"
          }
        },
        "725e501c7e8045bbab920884963fcf8d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b1ec07b6f6864896b8d1c1836c96e425": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "686b9e3f9b504daf9f24f28562b7d2a8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1a06d78d112e427294ab1c534b7632a0": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2633a4eb2908471096b30b1fbd91ae79": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "ac1dabd7669045b087cab437b2c9f06b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5d7d01d7edb04fcdb8d4b3c24a5ea803": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/hamzafarooq/maven-blps-2/blob/main/Module-4/semantic_search_module_4.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!python -m spacy download en_core_web_sm\n",
        "import locale\n",
        "def getpreferredencoding(do_setlocale = True):\n",
        "    return \"UTF-8\"\n",
        "locale.getpreferredencoding = getpreferredencoding\n",
        "!pip install openai"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "YwPCKiUmifPg",
        "outputId": "5fd3f959-6fec-4b2d-b436-b0168a2da4e7"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "2023-06-03 15:52:15.837043: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
            "To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
            "2023-06-03 15:52:17.150299: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
            "2023-06-03 15:52:18.398589: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:996] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
            "2023-06-03 15:52:18.399035: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:996] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
            "2023-06-03 15:52:18.399218: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:996] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting en-core-web-sm==3.5.0\n",
            "  Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.5.0/en_core_web_sm-3.5.0-py3-none-any.whl (12.8 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.8/12.8 MB\u001b[0m \u001b[31m108.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: spacy<3.6.0,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from en-core-web-sm==3.5.0) (3.5.2)\n",
            "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (3.0.12)\n",
            "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.0.4)\n",
            "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.0.9)\n",
            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.0.7)\n",
            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (3.0.8)\n",
            "Requirement already satisfied: thinc<8.2.0,>=8.1.8 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (8.1.9)\n",
            "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.1.1)\n",
            "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.4.6)\n",
            "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.0.8)\n",
            "Requirement already satisfied: typer<0.8.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (0.7.0)\n",
            "Requirement already satisfied: pathy>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (0.10.1)\n",
            "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (6.3.0)\n",
            "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (4.65.0)\n",
            "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.22.4)\n",
            "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.27.1)\n",
            "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<1.11.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.10.7)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (3.1.2)\n",
            "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (67.7.2)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (23.1)\n",
            "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (3.3.0)\n",
            "Requirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<1.11.0,>=1.7.4->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (4.5.0)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (3.4)\n",
            "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.2.0,>=8.1.8->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (0.7.9)\n",
            "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.2.0,>=8.1.8->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (0.0.4)\n",
            "Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.10/dist-packages (from typer<0.8.0,>=0.3.0->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (8.1.3)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy<3.6.0,>=3.5.0->en-core-web-sm==3.5.0) (2.1.2)\n",
            "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n",
            "You can now load the package via spacy.load('en_core_web_sm')\n",
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting openai\n",
            "  Downloading openai-0.27.7-py3-none-any.whl (71 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m72.0/72.0 kB\u001b[0m \u001b[31m8.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: requests>=2.20 in /usr/local/lib/python3.10/dist-packages (from openai) (2.27.1)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai) (4.65.0)\n",
            "Collecting aiohttp (from openai)\n",
            "  Downloading aiohttp-3.8.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.0/1.0 MB\u001b[0m \u001b[31m70.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai) (3.4)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai) (23.1.0)\n",
            "Collecting multidict<7.0,>=4.5 (from aiohttp->openai)\n",
            "  Downloading multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (114 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m114.5/114.5 kB\u001b[0m \u001b[31m16.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting async-timeout<5.0,>=4.0.0a3 (from aiohttp->openai)\n",
            "  Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)\n",
            "Collecting yarl<2.0,>=1.0 (from aiohttp->openai)\n",
            "  Downloading yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (268 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m268.8/268.8 kB\u001b[0m \u001b[31m34.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting frozenlist>=1.1.1 (from aiohttp->openai)\n",
            "  Downloading frozenlist-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (149 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m149.6/149.6 kB\u001b[0m \u001b[31m21.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting aiosignal>=1.1.2 (from aiohttp->openai)\n",
            "  Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)\n",
            "Installing collected packages: multidict, frozenlist, async-timeout, yarl, aiosignal, aiohttp, openai\n",
            "Successfully installed aiohttp-3.8.4 aiosignal-1.3.1 async-timeout-4.0.2 frozenlist-1.3.3 multidict-6.0.4 openai-0.27.7 yarl-1.9.2\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install gradio"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zbNK7QRvCZtR",
        "outputId": "7cdc50fe-87fc-4b7d-8b4b-ecfda03313aa"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting gradio\n",
            "  Downloading gradio-3.33.1-py3-none-any.whl (20.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m20.0/20.0 MB\u001b[0m \u001b[31m49.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting aiofiles (from gradio)\n",
            "  Downloading aiofiles-23.1.0-py3-none-any.whl (14 kB)\n",
            "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from gradio) (3.8.4)\n",
            "Requirement already satisfied: altair>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.2.2)\n",
            "Collecting fastapi (from gradio)\n",
            "  Downloading fastapi-0.96.0-py3-none-any.whl (57 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.1/57.1 kB\u001b[0m \u001b[31m7.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting ffmpy (from gradio)\n",
            "  Downloading ffmpy-0.3.0.tar.gz (4.8 kB)\n",
            "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Collecting gradio-client>=0.2.4 (from gradio)\n",
            "  Downloading gradio_client-0.2.5-py3-none-any.whl (288 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m288.1/288.1 kB\u001b[0m \u001b[31m27.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting httpx (from gradio)\n",
            "  Downloading httpx-0.24.1-py3-none-any.whl (75 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.4/75.4 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting huggingface-hub>=0.14.0 (from gradio)\n",
            "  Downloading huggingface_hub-0.15.1-py3-none-any.whl (236 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m236.8/236.8 kB\u001b[0m \u001b[31m15.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.1.2)\n",
            "Requirement already satisfied: markdown-it-py[linkify]>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.2.0)\n",
            "Requirement already satisfied: markupsafe in /usr/local/lib/python3.10/dist-packages (from gradio) (2.1.2)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from gradio) (3.7.1)\n",
            "Collecting mdit-py-plugins<=0.3.3 (from gradio)\n",
            "  Downloading mdit_py_plugins-0.3.3-py3-none-any.whl (50 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.5/50.5 kB\u001b[0m \u001b[31m4.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from gradio) (1.22.4)\n",
            "Collecting orjson (from gradio)\n",
            "  Downloading orjson-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (136 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m137.0/137.0 kB\u001b[0m \u001b[31m17.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from gradio) (1.5.3)\n",
            "Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (from gradio) (8.4.0)\n",
            "Requirement already satisfied: pydantic in /usr/local/lib/python3.10/dist-packages (from gradio) (1.10.7)\n",
            "Collecting pydub (from gradio)\n",
            "  Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n",
            "Requirement already satisfied: pygments>=2.12.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.14.0)\n",
            "Collecting python-multipart (from gradio)\n",
            "  Downloading python_multipart-0.0.6-py3-none-any.whl (45 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.7/45.7 kB\u001b[0m \u001b[31m3.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from gradio) (6.0)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from gradio) (2.27.1)\n",
            "Collecting semantic-version (from gradio)\n",
            "  Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from gradio) (4.5.0)\n",
            "Collecting uvicorn>=0.14.0 (from gradio)\n",
            "  Downloading uvicorn-0.22.0-py3-none-any.whl (58 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m8.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting websockets>=10.0 (from gradio)\n",
            "  Downloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.9/129.9 kB\u001b[0m \u001b[31m19.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: entrypoints in /usr/local/lib/python3.10/dist-packages (from altair>=4.2.0->gradio) (0.4)\n",
            "Requirement already satisfied: jsonschema>=3.0 in /usr/local/lib/python3.10/dist-packages (from altair>=4.2.0->gradio) (4.3.3)\n",
            "Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair>=4.2.0->gradio) (0.12.0)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from gradio-client>=0.2.4->gradio) (2023.4.0)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gradio-client>=0.2.4->gradio) (23.1)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.14.0->gradio) (3.12.0)\n",
            "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.14.0->gradio) (4.65.0)\n",
            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py[linkify]>=2.0.0->gradio) (0.1.2)\n",
            "Collecting linkify-it-py<3,>=1 (from markdown-it-py[linkify]>=2.0.0->gradio)\n",
            "  Downloading linkify_it_py-2.0.2-py3-none-any.whl (19 kB)\n",
            "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->gradio) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->gradio) (2022.7.1)\n",
            "Requirement already satisfied: click>=7.0 in /usr/local/lib/python3.10/dist-packages (from uvicorn>=0.14.0->gradio) (8.1.3)\n",
            "Collecting h11>=0.8 (from uvicorn>=0.14.0->gradio)\n",
            "  Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m9.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (23.1.0)\n",
            "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (2.0.12)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (1.9.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->gradio) (1.3.1)\n",
            "Collecting starlette<0.28.0,>=0.27.0 (from fastapi->gradio)\n",
            "  Downloading starlette-0.27.0-py3-none-any.whl (66 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.0/67.0 kB\u001b[0m \u001b[31m10.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (2022.12.7)\n",
            "Collecting httpcore<0.18.0,>=0.15.0 (from httpx->gradio)\n",
            "  Downloading httpcore-0.17.2-py3-none-any.whl (72 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m72.5/72.5 kB\u001b[0m \u001b[31m11.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (3.4)\n",
            "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (1.3.0)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->gradio) (1.0.7)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->gradio) (0.11.0)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->gradio) (4.39.3)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->gradio) (1.4.4)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->gradio) (3.0.9)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->gradio) (1.26.15)\n",
            "Requirement already satisfied: anyio<5.0,>=3.0 in /usr/local/lib/python3.10/dist-packages (from httpcore<0.18.0,>=0.15.0->httpx->gradio) (3.6.2)\n",
            "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair>=4.2.0->gradio) (0.19.3)\n",
            "Collecting uc-micro-py (from linkify-it-py<3,>=1->markdown-it-py[linkify]>=2.0.0->gradio)\n",
            "  Downloading uc_micro_py-1.0.2-py3-none-any.whl (6.2 kB)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->gradio) (1.16.0)\n",
            "Building wheels for collected packages: ffmpy\n",
            "  Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for ffmpy: filename=ffmpy-0.3.0-py3-none-any.whl size=4694 sha256=abd8aedab54b69e5083212705d3e7380c5796f853aadc534952c93538f80ce2f\n",
            "  Stored in directory: /root/.cache/pip/wheels/0c/c2/0e/3b9c6845c6a4e35beb90910cc70d9ac9ab5d47402bd62af0df\n",
            "Successfully built ffmpy\n",
            "Installing collected packages: pydub, ffmpy, websockets, uc-micro-py, semantic-version, python-multipart, orjson, h11, aiofiles, uvicorn, starlette, mdit-py-plugins, linkify-it-py, huggingface-hub, httpcore, httpx, fastapi, gradio-client, gradio\n",
            "Successfully installed aiofiles-23.1.0 fastapi-0.96.0 ffmpy-0.3.0 gradio-3.33.1 gradio-client-0.2.5 h11-0.14.0 httpcore-0.17.2 httpx-0.24.1 huggingface-hub-0.15.1 linkify-it-py-2.0.2 mdit-py-plugins-0.3.3 orjson-3.9.0 pydub-0.25.1 python-multipart-0.0.6 semantic-version-2.10.0 starlette-0.27.0 uc-micro-py-1.0.2 uvicorn-0.22.0 websockets-11.0.3\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JLhZWcJjiKCj",
        "outputId": "ea6f5ef2-f261-480d-8684-b719952e74a3"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting sentence-transformers\n",
            "  Downloading sentence-transformers-2.2.2.tar.gz (85 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.0/86.0 kB\u001b[0m \u001b[31m338.1 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Collecting rank_bm25\n",
            "  Downloading rank_bm25-0.2.2-py3-none-any.whl (8.6 kB)\n",
            "Collecting transformers<5.0.0,>=4.6.0 (from sentence-transformers)\n",
            "  Downloading transformers-4.29.2-py3-none-any.whl (7.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.1/7.1 MB\u001b[0m \u001b[31m83.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (4.65.0)\n",
            "Requirement already satisfied: torch>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (2.0.1+cu118)\n",
            "Requirement already satisfied: torchvision in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (0.15.2+cu118)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (1.22.4)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (1.2.2)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (1.10.1)\n",
            "Requirement already satisfied: nltk in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (3.8.1)\n",
            "Collecting sentencepiece (from sentence-transformers)\n",
            "  Downloading sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m62.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: huggingface-hub>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from sentence-transformers) (0.15.1)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (3.12.0)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (2023.4.0)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (2.27.1)\n",
            "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (6.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (4.5.0)\n",
            "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.4.0->sentence-transformers) (23.1)\n",
            "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->sentence-transformers) (1.11.1)\n",
            "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->sentence-transformers) (3.1)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->sentence-transformers) (3.1.2)\n",
            "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->sentence-transformers) (2.0.0)\n",
            "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->sentence-transformers) (3.25.2)\n",
            "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->sentence-transformers) (16.0.5)\n",
            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers<5.0.0,>=4.6.0->sentence-transformers) (2022.10.31)\n",
            "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers<5.0.0,>=4.6.0->sentence-transformers)\n",
            "  Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m46.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from nltk->sentence-transformers) (8.1.3)\n",
            "Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk->sentence-transformers) (1.2.0)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->sentence-transformers) (3.1.0)\n",
            "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/dist-packages (from torchvision->sentence-transformers) (8.4.0)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.6.0->sentence-transformers) (2.1.2)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (2022.12.7)\n",
            "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (2.0.12)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.4.0->sentence-transformers) (3.4)\n",
            "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.6.0->sentence-transformers) (1.3.0)\n",
            "Building wheels for collected packages: sentence-transformers\n",
            "  Building wheel for sentence-transformers (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for sentence-transformers: filename=sentence_transformers-2.2.2-py3-none-any.whl size=125926 sha256=dcb3e929ca8e0529de8e18b69c643d9bc408abbeaba8f909b9b6a44b37219430\n",
            "  Stored in directory: /root/.cache/pip/wheels/62/f2/10/1e606fd5f02395388f74e7462910fe851042f97238cbbd902f\n",
            "Successfully built sentence-transformers\n",
            "Installing collected packages: tokenizers, sentencepiece, rank_bm25, transformers, sentence-transformers\n",
            "Successfully installed rank_bm25-0.2.2 sentence-transformers-2.2.2 sentencepiece-0.1.99 tokenizers-0.13.3 transformers-4.29.2\n"
          ]
        }
      ],
      "source": [
        "!pip install -U sentence-transformers rank_bm25"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import json\n",
        "import pandas as pd\n",
        "import time\n",
        "import spacy\n",
        "from spacy.lang.en.stop_words import STOP_WORDS\n",
        "from string import punctuation\n",
        "from collections import Counter\n",
        "from heapq import nlargest\n",
        "import nltk\n",
        "import numpy as np\n",
        "from tqdm import tqdm\n",
        "from sentence_transformers import SentenceTransformer, util\n",
        "# import tiktoken\n",
        "from openai.embeddings_utils import get_embedding, cosine_similarity"
      ],
      "metadata": {
        "id": "XeaTl-n7iOv3"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "Read the data for Paris Hotels"
      ],
      "metadata": {
        "id": "h1-YMQLK9zMW"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "df = pd.read_csv('https://raw.githubusercontent.com/hamzafarooq/maven-mlsystem-design-cohort-1/main/data/paris_02_11_23.csv')"
      ],
      "metadata": {
        "id": "eP9CxWoRjq0_"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df.shape"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kQRrYpYwjuah",
        "outputId": "e1f9ccb9-fa5a-4b3f-eee8-ddf1c8ae1c96"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(28694, 18)"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.name.value_counts()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kV4dZfFJAn7w",
        "outputId": "4374b416-030b-40c5-9a6f-9e9fe7a02469"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Hotel d'Angleterre, Saint Germain des Pres              960\n",
              "InterContinental Paris - Le Grand                       800\n",
              "Hotel Marceau Champs Elysees                            800\n",
              "Sonder Atala Champs-Élysées                             800\n",
              "Hotel Dauphine Saint Germain                            800\n",
              "                                                       ... \n",
              "Hotel B55                                                94\n",
              "Les Jardins du Faubourg                                  78\n",
              "Ibis Styles Paris Meteor Avenue de la Porte d'Italie     62\n",
              "Hotel Maxim Folies                                       54\n",
              "Mama Shelter Paris West                                  40\n",
              "Name: name, Length: 156, dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df=df.drop_duplicates()"
      ],
      "metadata": {
        "id": "n2605_rpAUB4"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "#df.to_csv('/content/drive/MyDrive/Semantic_Search/paris_02_11_23.csv',index=False)"
      ],
      "metadata": {
        "id": "H3oj6axR9-uq"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df.shape"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pSf3x-60Ada7",
        "outputId": "43ffe445-3f0b-40e0-c228-1e0e03d5bb1b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(11990, 18)"
            ]
          },
          "metadata": {},
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.name.value_counts()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "34KBfe8rAhUq",
        "outputId": "f4bda820-58ba-42bb-d6ca-3446ee33c593"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "InterContinental Paris - Le Grand                       80\n",
              "Okko Hotels Paris Porte de Versailles                   80\n",
              "Citadines Montmartre Paris                              80\n",
              "Hotel Montfleuri                                        80\n",
              "Hotel Cayre                                             80\n",
              "                                                        ..\n",
              "Seven Hotel Paris                                       32\n",
              "Ibis Styles Paris Meteor Avenue de la Porte d'Italie    31\n",
              "Hotel Du Sentier                                        28\n",
              "Hotel Maxim Folies                                      27\n",
              "Mama Shelter Paris West                                 20\n",
              "Name: name, Length: 156, dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.head()"
      ],
      "metadata": {
        "id": "Y-0_6FKzJrO-",
        "outputId": "b23346f7-0d3b-4261-f373-4d6966728637",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 635
        }
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   review_id        date  review_rating  \\\n",
              "0  864290614  2022-10-12              1   \n",
              "1  864049819  2022-10-10              4   \n",
              "2  863952022  2022-10-10              5   \n",
              "3  863793066  2022-10-09              4   \n",
              "4  863631994  2022-10-08              2   \n",
              "\n",
              "                                               title  \\\n",
              "0  A large impersonal place with an on time check...   \n",
              "1                        Good hotel with rude waiter   \n",
              "2                                          Fantastic   \n",
              "3  Amidst the chaos of Fashion week, their servic...   \n",
              "4                      Not worth the effort or money   \n",
              "\n",
              "                                                text  votes  \\\n",
              "0  If you are looking for a huge, grand hotel exp...      1   \n",
              "1  We went to this hotel just this month\\nWe have...      1   \n",
              "2  Absolutely top-notch. Room, service, bed, pill...      0   \n",
              "3  We stayed during the Paris Fashion Week Chaos....      0   \n",
              "4  This hotel is not worth the effort or the pric...      0   \n",
              "\n",
              "                                                 url language platform  \\\n",
              "0  /ShowUserReviews-g187147-d207742-r864290614-In...       en   MOBILE   \n",
              "1  /ShowUserReviews-g187147-d207742-r864049819-In...       en   MOBILE   \n",
              "2  /ShowUserReviews-g187147-d207742-r863952022-In...       en    OTHER   \n",
              "3  /ShowUserReviews-g187147-d207742-r863793066-In...       en   MOBILE   \n",
              "4  /ShowUserReviews-g187147-d207742-r863631994-In...       en   MOBILE   \n",
              "\n",
              "                          author_id author_name author_username  \\\n",
              "0  E488EBBA1F82F16BF878FE274C735941      Anna J        AnnaJ250   \n",
              "1  4A830AD8B128F60AC02E83D6B6A530F7   QATAR2007       QATAR2007   \n",
              "2  AA2958C3E083861E81EEC085671BAA5B     aji1376         aji1376   \n",
              "3  DE4AB96DA3E104846D6D6423C2DAA4C8  jelinc2016      jelinc2016   \n",
              "4  DE02D713F209AEC684DC6108509E6912     VikaasK         VikaasK   \n",
              "\n",
              "                                name      id  \\\n",
              "0  InterContinental Paris - Le Grand  207742   \n",
              "1  InterContinental Paris - Le Grand  207742   \n",
              "2  InterContinental Paris - Le Grand  207742   \n",
              "3  InterContinental Paris - Le Grand  207742   \n",
              "4  InterContinental Paris - Le Grand  207742   \n",
              "\n",
              "                                         description  rating  rating_count  \\\n",
              "0  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "1  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "2  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "3  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "4  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "\n",
              "                                            features  \n",
              "0  ['roomFeatures_air conditioning', 'roomFeature...  \n",
              "1  ['roomFeatures_air conditioning', 'roomFeature...  \n",
              "2  ['roomFeatures_air conditioning', 'roomFeature...  \n",
              "3  ['roomFeatures_air conditioning', 'roomFeature...  \n",
              "4  ['roomFeatures_air conditioning', 'roomFeature...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3d3a48c0-003e-4f46-9426-a80371767515\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>review_id</th>\n",
              "      <th>date</th>\n",
              "      <th>review_rating</th>\n",
              "      <th>title</th>\n",
              "      <th>text</th>\n",
              "      <th>votes</th>\n",
              "      <th>url</th>\n",
              "      <th>language</th>\n",
              "      <th>platform</th>\n",
              "      <th>author_id</th>\n",
              "      <th>author_name</th>\n",
              "      <th>author_username</th>\n",
              "      <th>name</th>\n",
              "      <th>id</th>\n",
              "      <th>description</th>\n",
              "      <th>rating</th>\n",
              "      <th>rating_count</th>\n",
              "      <th>features</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>864290614</td>\n",
              "      <td>2022-10-12</td>\n",
              "      <td>1</td>\n",
              "      <td>A large impersonal place with an on time check...</td>\n",
              "      <td>If you are looking for a huge, grand hotel exp...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864290614-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>E488EBBA1F82F16BF878FE274C735941</td>\n",
              "      <td>Anna J</td>\n",
              "      <td>AnnaJ250</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>864049819</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>4</td>\n",
              "      <td>Good hotel with rude waiter</td>\n",
              "      <td>We went to this hotel just this month\\nWe have...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864049819-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>4A830AD8B128F60AC02E83D6B6A530F7</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>863952022</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>5</td>\n",
              "      <td>Fantastic</td>\n",
              "      <td>Absolutely top-notch. Room, service, bed, pill...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863952022-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>AA2958C3E083861E81EEC085671BAA5B</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>863793066</td>\n",
              "      <td>2022-10-09</td>\n",
              "      <td>4</td>\n",
              "      <td>Amidst the chaos of Fashion week, their servic...</td>\n",
              "      <td>We stayed during the Paris Fashion Week Chaos....</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863793066-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE4AB96DA3E104846D6D6423C2DAA4C8</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>863631994</td>\n",
              "      <td>2022-10-08</td>\n",
              "      <td>2</td>\n",
              "      <td>Not worth the effort or money</td>\n",
              "      <td>This hotel is not worth the effort or the pric...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863631994-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE02D713F209AEC684DC6108509E6912</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3d3a48c0-003e-4f46-9426-a80371767515')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-3d3a48c0-003e-4f46-9426-a80371767515 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-3d3a48c0-003e-4f46-9426-a80371767515');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "df[\"combined\"] = (\n",
        "    \"title: \" + df.title.str.strip()+\"; Content: \" + df.text.str.strip()\n",
        "    # +\"; desc: \"+ df.text.str.strip()\n",
        ")"
      ],
      "metadata": {
        "id": "qVnqTy05jvLR"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import re\n",
        "\n",
        "df_combined = df.copy()\n",
        "\n",
        "df_combined['combined'] = df_combined['combined'].apply(lambda x: re.sub('[^a-zA-z0-9\\s]','',str(x)))\n",
        "\n",
        "def lower_case(input_str):\n",
        "    input_str = input_str.lower()\n",
        "    return input_str\n",
        "\n",
        "df_combined['combined']= df_combined['combined'].apply(lambda x: lower_case(x))\n"
      ],
      "metadata": {
        "id": "-MWu4Lidj3Ur"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "embedder = SentenceTransformer('all-mpnet-base-v2')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 465,
          "referenced_widgets": [
            "9af89d0f44fa4a21b58095e7995c2452",
            "99ebc2f74e964ae091adaa86b6101cd2",
            "ee5d01da140143db97914eeb000b050f",
            "5f7f6abd203444e39b3142fe9d6b0834",
            "517f6621a4094b3d8d6288b96597fbe8",
            "92ae89d247c4454f82c31b2bc0f2b008",
            "dbacb1e16fc94ce9809519dc05895fde",
            "05b421be1b5e45beabe5a624ae27e400",
            "eb3328d90c474163b81a178fd27cd3ab",
            "fa4b706799e64f5397160c4c70d934d1",
            "b11ab2fe5471450dae1b3205cb24fbba",
            "babf738374ea4b7e9bd142ba4344deb0",
            "06ef7dd2f89746fabae1a54c9bc4eb33",
            "795e39127e404652902bba25d3d45064",
            "ca0c0f4be89b49b88f4eb8573674ca04",
            "89303915c6ee4d43a1d13653a7842970",
            "ecb1c77c47d643e493e430a62c7777e7",
            "37ccecc09843493186fb997afbb3e8c5",
            "48ec49bc638344aab0e13e3c87b1495a",
            "f1bf6c3d6b40479689df00cccbf2b2c2",
            "8ecc14ad73e843cf878b1b1f9e499028",
            "9f25724847d54261b490d0f139dd41e8",
            "0d753b3534e74aedaa8edddd5ab474c4",
            "260c7130940b48d99327f36f623d3df3",
            "589ef4738ee346398c6b16d7fcbe224f",
            "f28ecd77c2ba4b828d93411d805bb215",
            "2f14fe68589e4a9ea4a39212d845d51f",
            "e6a368ba9dc64686a16e3b119bbbfe13",
            "347264a0a2b249f7a7cce852320c54c3",
            "c2249d885d454eeeb576e969769f7563",
            "8b6a25bf4a964bc894c590e5b203f15d",
            "50e5f8c912ce4824ae95b120afb7e7f6",
            "192250c8a08645de92bf11160b0fdc0a",
            "08a9dc7672e444d9bc355ad05f6c269a",
            "01cf6a49642740c1bc41fd96501d39c0",
            "d9d85ec7c3cf4ac68890aa7eb1acd64c",
            "02a639e00210489380d214e182f35067",
            "6557004919d646c887d9627dd22fd844",
            "381d64baa8b346f492631e759707d458",
            "09886b0bb8574841ae52f1e469886d5b",
            "2b951b7a59a84bcfa74ce7a56bdc0c9f",
            "5d531a267cfc4e77ac7cf174ac128c4e",
            "d8f3de3d218c4867b3177fa7b38dcc9f",
            "5590113395af47f3a406d4786256d91e",
            "ccc221d10b9e47659f71543088e08a71",
            "bfbdba27efc94e2f94f67605766b30ef",
            "f27f23d85f1043feb93f3c5df7515e48",
            "6f745350076f40898d22210b6c03631f",
            "e5678a44ad834b3dac1641833824c2ce",
            "5d120cfa887a416c90b25fbd852154b0",
            "f8dbcb62a62f4191a4aaace38e539fea",
            "4189615b536b4d7db4f2f1bc066ad8b1",
            "e9a5ee92b0794f93b84cfa41a3846552",
            "b47b6940aabe49fdb91f2d12cee790f9",
            "fd38f78ed42b48898017266dfb6f5011",
            "8540aa9b898e4a35947c897437449720",
            "3268e2367cc84c6bb20b22b594a8099f",
            "a6dc34c42b964f58997cd02412cad05a",
            "c20dd0720504427886071be0e4a3ce6b",
            "7c4f2f756ceb4e28b4466bf6f0e9dd2c",
            "dd37171882ce4d6792f13f71c6add87c",
            "62d3e66c680d49f9884b7616d5d2d81f",
            "e7e5eb7dfd274cf4b65b5533a8c97f54",
            "272aa6fd18684f8f9510784a7e04e0b7",
            "bd144b8bbed14b4e9cda8a3dfb939b82",
            "06b602d1008b483bba2d68181fb628aa",
            "37ecdf6cc56d48d39966baa2547ae502",
            "7951e5f2ed4141dba20f615fd59d2094",
            "86ea3014d3fb40b79fd08bfc7c93090b",
            "176da6b8e5f440bb878710a0736c9424",
            "24a23d612d094a1798b254d66459ed57",
            "a83010b39a9941b2b0eac737b27c7aa1",
            "726565aa767d44a88ce0b3d1e1df4c27",
            "108c1e8c38574f9c8cf7fdb3470e6deb",
            "12ad22903db842cc94126cd9384c1836",
            "93fecbb84dba4ba1b34d111a22042492",
            "91a650f6e5c249e99d33963180f60b85",
            "b74fb6af81434b25a79e5a1501ba09ef",
            "0043ac1d20f1423993650c428d171486",
            "e0b4c424f3fd45f09355400229baa202",
            "06ae60be4caa460a8755139376149ada",
            "10eb83219a504910a866ec82f0ec4b53",
            "221808209a04422f8d98ee278a7502ef",
            "89a39eadd33c49a6a444f7c63649aded",
            "22de09d47cd341c7bbf6c4e12be80caf",
            "043fff097a47490f8e702c5f3b27b5f8",
            "580f371f502849899e251b44b52d7da9",
            "1c03a229ee634267980d0cea3d0da4fd",
            "615da32082df414b931bf6875c21189b",
            "6557085809e24463ac8cdd1c525e4709",
            "27b1e4ccb2154d25a71d8710adbc425b",
            "b3a165c6ac9149159a0c3f319bf879c9",
            "9176f72d53d54f92a24bcafb9e75857d",
            "31bcd4762c764f9ba65ded46e2f446b1",
            "4a9073f611d84a07a3c8ed27c6472a01",
            "bc74c59a6f7447e1917d2574a758ceec",
            "944eb816bedf412baa3be5e8d7d71da3",
            "90af63eca9554f0fb09e1db06b7bd120",
            "13bab4b2e95d4452bf960863e667cbb7",
            "0626f0484d354f7ba78aa76ecfa4df07",
            "09c106c42cef4e8c8971cf9407187356",
            "5f6ecb1e74d244c7b3b71c79e4f48b06",
            "5694a9d651b745b28e3682cf0f53a8ff",
            "741834f6b692451981ce546ef6e21472",
            "d88b33e5fd464af9a32c267fbc7ce3e6",
            "f320eef45e4a4bb2b18b5706373c5c65",
            "d8c59620be844893aa72f21f5a079da0",
            "a717f312b9554e73afdb333b74fcce91",
            "0c78074026034ed184e4a4b473a50e7d",
            "0980c219284e4d32be65069e1200ddc0",
            "7f773086fb484435be4faf3e5fa25315",
            "00ef7a364aef4051be3d4ec6a6b75191",
            "fd1e419eeed643e9a46a015a39330dcc",
            "c5594db8a57f4b2bb6aabf40d80e94fe",
            "942b25cfd8054b0d833618d05490ac8a",
            "d6a33f9f17f445b781842f36c21cfcff",
            "65c1a81505af43538bde3bdc84e1a6ab",
            "1cc2298cd190422ab4e9f23f924b2c43",
            "5f13f3e8caaf484695a9d4f42e71dfc3",
            "f9084ce010974bf2af5b4872677fa47c",
            "b44b80f935994159b6370d8d95cc6c96",
            "87abe7bd80a545b594f319024ead659d",
            "7a450969e6714f6690afbd96406bf3f5",
            "be110413572b4d398ed2d65d7bab40e2",
            "71bdb94d0b1d4445a3127581c9b57d04",
            "4ba7d862c8da4805b70b75ccf4e5d220",
            "77d3f036c2a841e1b27e93c287e9d82a",
            "a9bd1a62aa7244e7a4e61204b9d16aae",
            "a23541be521d45ca89f3c55777713e02",
            "0314a11611bc40209df0173fa4850e9b",
            "1bbf054934784eacb3e8f3b71a137cda",
            "18b6efae1ce34819bf3399540d691486",
            "8009c62bd1874532a286f66c6979633b",
            "930a08a3a6144814815cc0ad5a757f2c",
            "fa5d494c529b40eea18fbee2f985a060",
            "969f67e0f4b34d0db568153462d2b9a9",
            "33b2bd1235fa4b70bc08fe889d19c025",
            "b186ad2aff7f44059226a1ca8e4b41cd",
            "cc30204ef8dd485a8cffa9340cfb232a",
            "85d4a19459f04fa3abca091ac13d59e2",
            "3588610eac7c41d0afccc60a20c087d9",
            "0be3e6192c5c4fb6945b471243c855b7",
            "61d3c719bb0c460fa0d6b0981307ac8d",
            "5023e7ea0e794478a147798ab4ba0f15",
            "ac9a54c2041941c18056575cdd7a8552",
            "6a54a0c4369d4383a9981abff3d65204",
            "d7efaccc4b5149d09a19d4c2d7c4d3a5",
            "de41ed08dc0f4f5193a04d92895f7005",
            "33c243f5a094478fb74b6bcf70887387",
            "6dfc23ddd7184d6f9d96acb37a2c3c1d",
            "0bfc311479e3478290d3a8cb1eb38a42",
            "5848ec578e3b45d4858b9c165882f302",
            "1651425e91f84bbf8e98b0834639c2a7",
            "59cd350331384a6bb9f2105def5ff1a6"
          ]
        },
        "id": "jyCnxnvCj6vW",
        "outputId": "52f02c18-3910-49c4-8542-2b3b68312a2d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)a8e1d/.gitattributes:   0%|          | 0.00/1.18k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "9af89d0f44fa4a21b58095e7995c2452"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)_Pooling/config.json:   0%|          | 0.00/190 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "babf738374ea4b7e9bd142ba4344deb0"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)b20bca8e1d/README.md:   0%|          | 0.00/10.6k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "0d753b3534e74aedaa8edddd5ab474c4"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)0bca8e1d/config.json:   0%|          | 0.00/571 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "08a9dc7672e444d9bc355ad05f6c269a"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)ce_transformers.json:   0%|          | 0.00/116 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "ccc221d10b9e47659f71543088e08a71"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)e1d/data_config.json:   0%|          | 0.00/39.3k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "8540aa9b898e4a35947c897437449720"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading pytorch_model.bin:   0%|          | 0.00/438M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "37ecdf6cc56d48d39966baa2547ae502"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)nce_bert_config.json:   0%|          | 0.00/53.0 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b74fb6af81434b25a79e5a1501ba09ef"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)cial_tokens_map.json:   0%|          | 0.00/239 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "615da32082df414b931bf6875c21189b"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)a8e1d/tokenizer.json:   0%|          | 0.00/466k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "0626f0484d354f7ba78aa76ecfa4df07"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)okenizer_config.json:   0%|          | 0.00/363 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "7f773086fb484435be4faf3e5fa25315"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)8e1d/train_script.py:   0%|          | 0.00/13.1k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "87abe7bd80a545b594f319024ead659d"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)b20bca8e1d/vocab.txt:   0%|          | 0.00/232k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "8009c62bd1874532a286f66c6979633b"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading (…)bca8e1d/modules.json:   0%|          | 0.00/349 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "5023e7ea0e794478a147798ab4ba0f15"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import json\n",
        "from sentence_transformers import SentenceTransformer, CrossEncoder, util\n",
        "import gzip\n",
        "import os\n",
        "import torch\n",
        "\n",
        "if not torch.cuda.is_available():\n",
        "    print(\"Warning: No GPU found. Please add GPU to your notebook\")\n",
        "else:\n",
        "  print(\"GPU Found!\")\n",
        "  embedder =  embedder.to('cuda')"
      ],
      "metadata": {
        "id": "fioMC20Dj__G",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b6379a59-0be2-47ce-9e2a-ba496c5eff5d"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "GPU Found!\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df_combined.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 687
        },
        "id": "H1ghjyTYkKX0",
        "outputId": "e92a7eb0-8c7f-4afa-9273-5482b90a8a4a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   review_id        date  review_rating  \\\n",
              "0  864290614  2022-10-12              1   \n",
              "1  864049819  2022-10-10              4   \n",
              "2  863952022  2022-10-10              5   \n",
              "3  863793066  2022-10-09              4   \n",
              "4  863631994  2022-10-08              2   \n",
              "\n",
              "                                               title  \\\n",
              "0  A large impersonal place with an on time check...   \n",
              "1                        Good hotel with rude waiter   \n",
              "2                                          Fantastic   \n",
              "3  Amidst the chaos of Fashion week, their servic...   \n",
              "4                      Not worth the effort or money   \n",
              "\n",
              "                                                text  votes  \\\n",
              "0  If you are looking for a huge, grand hotel exp...      1   \n",
              "1  We went to this hotel just this month\\nWe have...      1   \n",
              "2  Absolutely top-notch. Room, service, bed, pill...      0   \n",
              "3  We stayed during the Paris Fashion Week Chaos....      0   \n",
              "4  This hotel is not worth the effort or the pric...      0   \n",
              "\n",
              "                                                 url language platform  \\\n",
              "0  /ShowUserReviews-g187147-d207742-r864290614-In...       en   MOBILE   \n",
              "1  /ShowUserReviews-g187147-d207742-r864049819-In...       en   MOBILE   \n",
              "2  /ShowUserReviews-g187147-d207742-r863952022-In...       en    OTHER   \n",
              "3  /ShowUserReviews-g187147-d207742-r863793066-In...       en   MOBILE   \n",
              "4  /ShowUserReviews-g187147-d207742-r863631994-In...       en   MOBILE   \n",
              "\n",
              "                          author_id author_name author_username  \\\n",
              "0  E488EBBA1F82F16BF878FE274C735941      Anna J        AnnaJ250   \n",
              "1  4A830AD8B128F60AC02E83D6B6A530F7   QATAR2007       QATAR2007   \n",
              "2  AA2958C3E083861E81EEC085671BAA5B     aji1376         aji1376   \n",
              "3  DE4AB96DA3E104846D6D6423C2DAA4C8  jelinc2016      jelinc2016   \n",
              "4  DE02D713F209AEC684DC6108509E6912     VikaasK         VikaasK   \n",
              "\n",
              "                                name      id  \\\n",
              "0  InterContinental Paris - Le Grand  207742   \n",
              "1  InterContinental Paris - Le Grand  207742   \n",
              "2  InterContinental Paris - Le Grand  207742   \n",
              "3  InterContinental Paris - Le Grand  207742   \n",
              "4  InterContinental Paris - Le Grand  207742   \n",
              "\n",
              "                                         description  rating  rating_count  \\\n",
              "0  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "1  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "2  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "3  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "4  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "\n",
              "                                            features  \\\n",
              "0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "1  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "2  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "3  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "4  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "\n",
              "                                            combined  \n",
              "0  title a large impersonal place with an on time...  \n",
              "1  title good hotel with rude waiter content we w...  \n",
              "2  title fantastic content absolutely topnotch ro...  \n",
              "3  title amidst the chaos of fashion week their s...  \n",
              "4  title not worth the effort or money content th...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-a09e7731-9821-40df-85f1-6bd5b00df5e1\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>review_id</th>\n",
              "      <th>date</th>\n",
              "      <th>review_rating</th>\n",
              "      <th>title</th>\n",
              "      <th>text</th>\n",
              "      <th>votes</th>\n",
              "      <th>url</th>\n",
              "      <th>language</th>\n",
              "      <th>platform</th>\n",
              "      <th>author_id</th>\n",
              "      <th>author_name</th>\n",
              "      <th>author_username</th>\n",
              "      <th>name</th>\n",
              "      <th>id</th>\n",
              "      <th>description</th>\n",
              "      <th>rating</th>\n",
              "      <th>rating_count</th>\n",
              "      <th>features</th>\n",
              "      <th>combined</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>864290614</td>\n",
              "      <td>2022-10-12</td>\n",
              "      <td>1</td>\n",
              "      <td>A large impersonal place with an on time check...</td>\n",
              "      <td>If you are looking for a huge, grand hotel exp...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864290614-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>E488EBBA1F82F16BF878FE274C735941</td>\n",
              "      <td>Anna J</td>\n",
              "      <td>AnnaJ250</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title a large impersonal place with an on time...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>864049819</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>4</td>\n",
              "      <td>Good hotel with rude waiter</td>\n",
              "      <td>We went to this hotel just this month\\nWe have...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864049819-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>4A830AD8B128F60AC02E83D6B6A530F7</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title good hotel with rude waiter content we w...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>863952022</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>5</td>\n",
              "      <td>Fantastic</td>\n",
              "      <td>Absolutely top-notch. Room, service, bed, pill...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863952022-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>AA2958C3E083861E81EEC085671BAA5B</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title fantastic content absolutely topnotch ro...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>863793066</td>\n",
              "      <td>2022-10-09</td>\n",
              "      <td>4</td>\n",
              "      <td>Amidst the chaos of Fashion week, their servic...</td>\n",
              "      <td>We stayed during the Paris Fashion Week Chaos....</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863793066-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE4AB96DA3E104846D6D6423C2DAA4C8</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title amidst the chaos of fashion week their s...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>863631994</td>\n",
              "      <td>2022-10-08</td>\n",
              "      <td>2</td>\n",
              "      <td>Not worth the effort or money</td>\n",
              "      <td>This hotel is not worth the effort or the pric...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863631994-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE02D713F209AEC684DC6108509E6912</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title not worth the effort or money content th...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a09e7731-9821-40df-85f1-6bd5b00df5e1')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-a09e7731-9821-40df-85f1-6bd5b00df5e1 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-a09e7731-9821-40df-85f1-6bd5b00df5e1');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 16
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "sample = df_combined[:10]"
      ],
      "metadata": {
        "id": "S3WxiVZykgEp"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "embedder =  embedder.to('cpu')\n",
        "\n",
        "startTime = time.time()\n",
        "\n",
        "sample[\"embedding\"] = sample.combined.apply(lambda x: embedder.encode(x))\n",
        "\n",
        "executionTime = (time.time() - startTime)\n",
        "print('Execution time in seconds: ' + str(executionTime))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mMAJaPTdk0N9",
        "outputId": "d3b1efee-0597-42ee-cb0e-f8b1d4259a03"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Execution time in seconds: 3.2435641288757324\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "<ipython-input-18-e009c77fa025>:5: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  sample[\"embedding\"] = sample.combined.apply(lambda x: embedder.encode(x))\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "embedder =  embedder.to('cuda')\n",
        "startTime = time.time()\n",
        "\n",
        "sample[\"embedding\"] = sample.combined.apply(lambda x: embedder.encode(x))\n",
        "\n",
        "executionTime = (time.time() - startTime)\n",
        "print('Execution time in seconds: ' + str(executionTime))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Ud5dCHYykqb9",
        "outputId": "b8b24bfc-f1b0-47ab-f24e-f5bb3f2d9edf"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Execution time in seconds: 0.3263421058654785\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "<ipython-input-19-290f30ba95f0>:4: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  sample[\"embedding\"] = sample.combined.apply(lambda x: embedder.encode(x))\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#sample.to_pickle('/content/drive/MyDrive/Semantic_Search/df.pkl')    #to save the dataframe, df to 123.pkl\n"
      ],
      "metadata": {
        "id": "26sft5QNzAFT"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df_with_embedding = pd.read_pickle('/content/drive/MyDrive/Semantic_Search/df.pkl') #to load 123.pkl back to the dataframe df"
      ],
      "metadata": {
        "id": "zUXG9behA14P"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# df1.embedding[0]"
      ],
      "metadata": {
        "id": "3_b_5SG_1ggT"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query = 'close to Hotel Malte'\n",
        "\n",
        "query_embedding = embedder.encode(query,show_progress_bar=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "4616ad080b5d48ecaac94ce3e1b3ed3b",
            "4f1c487486f542dea51392e3467721f5",
            "61a4367adf0a42ccb6c60776e86c67da",
            "15cbbf2b50eb4bb08b7417af0e25407f",
            "764f3f4b605c41c98e9e7ee26c1a4258",
            "01040c76761f48f6bda0b95d7d0169e1",
            "847fd916b29840eda5d321d339327d09",
            "4afe6d7adfb64e649897ef66f6111aae",
            "21e98d178f3f4d6ea9354bfee91453c9",
            "284daeb27eea473f979fcf338277e531",
            "499fa5aaf0d74a20b690e0f6b06a4129"
          ]
        },
        "id": "lZWcMc1dzkvr",
        "outputId": "d203807a-d808-488c-93eb-b62ad94fd21c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Batches:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "4616ad080b5d48ecaac94ce3e1b3ed3b"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df_with_embedding.combined[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 161
        },
        "id": "0z3H8o_4CJ63",
        "outputId": "5a5f1cf4-5365-42c6-b565-7561c65f160a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'title a large impersonal place with an on time check in problem and other issues content if you are looking for a huge grand hotel experience this place may be for you but i found it to be impersonal and the staff lacking warmth and sometimes manners they seem to avoid engagement with guests whenever possible add that to the fact that each morning and evening there are 2 or 3 bus loads of tour groups gathering in the lobby and right outside the hotel when i encountered this on my first evening and needed a taxi i asked the doorman whether he could get me a taxi or whether i should order an uber he simply nodded and walked away so i ordered an uber\\n\\nthe checkin counter must be understaffed as i had to wait in a long line for about 15 minutes only to be told that my room was not ready official checkin is 2pm but my room was not ready until 5pm i should have taken seriously the many previous tripadvisor reviewers who had the same experience they gave me a drink voucher in the bar as compensation but i didnt use it because i wasnt in the mood for a drink after international travel or any other day because im not a bar person and the checkin person said he would phone me when my room was ready but never did i only found out it was ready after checking\\n\\nthe breakfast buffet is fine but nothing special and over my 3 days there several times i bumped into servers who cut me off or crossed in front of me as i navigated to and from the buffet i had dinner in the restaurant straight from a long day of exploring and apparently didnt meet the maitre ds standards as he tried everything in his power to avoid seating me in the mostly empty restaurant at 615pm finally he phoned the front desk to verify that i was a hotel guest and ran out of excuses after all that trouble i found the menu limited the food mediocre and the service bordering on surly\\n\\nmy suite was large and nice although there was very low water pressure in the shower and oddly despite mirrors everywhere not one was full length also all of the glasses and coffee mugs in the minibar were dirty\\n\\nso one star for the decent room and for the two people working there who were genuinely nice to me during my 3 days there desc if you are looking for a huge grand hotel experience this place may be for you but i found it to be impersonal and the staff lacking warmth and sometimes manners they seem to avoid engagement with guests whenever possible add that to the fact that each morning and evening there are 2 or 3 bus loads of tour groups gathering in the lobby and right outside the hotel when i encountered this on my first evening and needed a taxi i asked the doorman whether he could get me a taxi or whether i should order an uber he simply nodded and walked away so i ordered an uber\\n\\nthe checkin counter must be understaffed as i had to wait in a long line for about 15 minutes only to be told that my room was not ready official checkin is 2pm but my room was not ready until 5pm i should have taken seriously the many previous tripadvisor reviewers who had the same experience they gave me a drink voucher in the bar as compensation but i didnt use it because i wasnt in the mood for a drink after international travel or any other day because im not a bar person and the checkin person said he would phone me when my room was ready but never did i only found out it was ready after checking\\n\\nthe breakfast buffet is fine but nothing special and over my 3 days there several times i bumped into servers who cut me off or crossed in front of me as i navigated to and from the buffet i had dinner in the restaurant straight from a long day of exploring and apparently didnt meet the maitre ds standards as he tried everything in his power to avoid seating me in the mostly empty restaurant at 615pm finally he phoned the front desk to verify that i was a hotel guest and ran out of excuses after all that trouble i found the menu limited the food mediocre and the service bordering on surly\\n\\nmy suite was large and nice although there was very low water pressure in the shower and oddly despite mirrors everywhere not one was full length also all of the glasses and coffee mugs in the minibar were dirty\\n\\nso one star for the decent room and for the two people working there who were genuinely nice to me during my 3 days there'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 28
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "corpus_embeddings = embedder.encode(df_with_embedding.combined,show_progress_bar=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "8fd5c8790f4a42afab9c5e7f7df720cc",
            "a111157a6fda43d0919f3663df3dec45",
            "cbb4ecfa97004babb1dd3baeb32e2bb8",
            "075cd69194904e39ab9dfab7b2f18520",
            "8a4ed750c709421aacd1c12ebd01236b",
            "aa44ab0113614677ab364529ea686ede",
            "06b4472d3f5d4693b169049d8f3e786f",
            "a0b4fb42831943848dd3191c3f0bda7e",
            "acfc4cd369ed45f880d41c3519fa9e27",
            "dccefb4b3f7c4132ac9a8ccd4525c9d2",
            "b6ed96e76d1747429e034807062d1f91"
          ]
        },
        "id": "3emIkUFZ0HP-",
        "outputId": "51cd1100-d6e9-44ba-8f25-0aa3afddb8ce"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Batches:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "8fd5c8790f4a42afab9c5e7f7df720cc"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df_with_embedding['similarity']=cosine_similarity(corpus_embeddings, query_embedding)"
      ],
      "metadata": {
        "id": "1OoGST7FzJCs"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df_with_embedding['similarity_2'] = df_with_embedding.embedding.apply(lambda x: cosine_similarity(x, query_embedding.reshape(768,-1)))"
      ],
      "metadata": {
        "id": "ApOEsleDl1Rp"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df_with_embedding"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 994
        },
        "id": "ju_tyeYrmPq5",
        "outputId": "27475728-932b-49c3-f89f-878944f9f9d0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   review_id        date  review_rating  \\\n",
              "0  864290614  2022-10-12              1   \n",
              "1  864049819  2022-10-10              4   \n",
              "2  863952022  2022-10-10              5   \n",
              "3  863793066  2022-10-09              4   \n",
              "4  863631994  2022-10-08              2   \n",
              "5  862073785  2022-09-26              4   \n",
              "6  861021031  2022-09-20              5   \n",
              "7  860421664  2022-09-16              5   \n",
              "8  856124006  2022-08-24              5   \n",
              "9  856016947  2022-08-23              5   \n",
              "\n",
              "                                               title  \\\n",
              "0  A large impersonal place with an on time check...   \n",
              "1                        Good hotel with rude waiter   \n",
              "2                                          Fantastic   \n",
              "3  Amidst the chaos of Fashion week, their servic...   \n",
              "4                      Not worth the effort or money   \n",
              "5         Not quite up to Intercontinental standards   \n",
              "6                    Luxury in the heart of the city   \n",
              "7                                          Beautiful   \n",
              "8                Great old fashioned quality service   \n",
              "9          Best location and platform to visit Paris   \n",
              "\n",
              "                                                text  votes  \\\n",
              "0  If you are looking for a huge, grand hotel exp...      1   \n",
              "1  We went to this hotel just this month\\nWe have...      1   \n",
              "2  Absolutely top-notch. Room, service, bed, pill...      0   \n",
              "3  We stayed during the Paris Fashion Week Chaos....      0   \n",
              "4  This hotel is not worth the effort or the pric...      0   \n",
              "5  We had a one night stay prior to taking the Eu...      0   \n",
              "6  We were very impressed with the intercontinent...      0   \n",
              "7  Visited for my birthday and everything was jus...      0   \n",
              "8  All I can say is we found good old fashioned f...      1   \n",
              "9  Our family of 4 plus a friend enjoyed the grea...      0   \n",
              "\n",
              "                                                 url language platform  \\\n",
              "0  /ShowUserReviews-g187147-d207742-r864290614-In...       en   MOBILE   \n",
              "1  /ShowUserReviews-g187147-d207742-r864049819-In...       en   MOBILE   \n",
              "2  /ShowUserReviews-g187147-d207742-r863952022-In...       en    OTHER   \n",
              "3  /ShowUserReviews-g187147-d207742-r863793066-In...       en   MOBILE   \n",
              "4  /ShowUserReviews-g187147-d207742-r863631994-In...       en   MOBILE   \n",
              "5  /ShowUserReviews-g187147-d207742-r862073785-In...       en   MOBILE   \n",
              "6  /ShowUserReviews-g187147-d207742-r861021031-In...       en    OTHER   \n",
              "7  /ShowUserReviews-g187147-d207742-r860421664-In...       en    OTHER   \n",
              "8  /ShowUserReviews-g187147-d207742-r856124006-In...       en    OTHER   \n",
              "9  /ShowUserReviews-g187147-d207742-r856016947-In...       en   MOBILE   \n",
              "\n",
              "                          author_id  ...                               name  \\\n",
              "0  E488EBBA1F82F16BF878FE274C735941  ...  InterContinental Paris - Le Grand   \n",
              "1  4A830AD8B128F60AC02E83D6B6A530F7  ...  InterContinental Paris - Le Grand   \n",
              "2  AA2958C3E083861E81EEC085671BAA5B  ...  InterContinental Paris - Le Grand   \n",
              "3  DE4AB96DA3E104846D6D6423C2DAA4C8  ...  InterContinental Paris - Le Grand   \n",
              "4  DE02D713F209AEC684DC6108509E6912  ...  InterContinental Paris - Le Grand   \n",
              "5  BA9F96090F35C7A562E550825BAB4B32  ...  InterContinental Paris - Le Grand   \n",
              "6  CB65D8DF04EEB78702BB03F39BAC6717  ...  InterContinental Paris - Le Grand   \n",
              "7  9D8328D86D62AFA560367B6F81565010  ...  InterContinental Paris - Le Grand   \n",
              "8  82C9562F2314BE52F0CD417EC6034CE2  ...  InterContinental Paris - Le Grand   \n",
              "9  266247D26801AA5B479974849CAA8210  ...  InterContinental Paris - Le Grand   \n",
              "\n",
              "       id                                        description  rating  \\\n",
              "0  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "1  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "2  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "3  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "4  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "5  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "6  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "7  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "8  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "9  207742  The InterContinental Paris Le Grand, opened du...     4.5   \n",
              "\n",
              "  rating_count                                           features  \\\n",
              "0       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "1       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "2       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "3       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "4       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "5       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "6       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "7       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "8       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "9       3517.0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "\n",
              "                                            combined  \\\n",
              "0  title a large impersonal place with an on time...   \n",
              "1  title good hotel with rude waiter content we w...   \n",
              "2  title fantastic content absolutely topnotch ro...   \n",
              "3  title amidst the chaos of fashion week their s...   \n",
              "4  title not worth the effort or money content th...   \n",
              "5  title not quite up to intercontinental standar...   \n",
              "6  title luxury in the heart of the city content ...   \n",
              "7  title beautiful content visited for my birthda...   \n",
              "8  title great old fashioned quality service cont...   \n",
              "9  title best location and platform to visit pari...   \n",
              "\n",
              "                                           embedding similarity  similarity_2  \n",
              "0  [0.043491498, -0.012825325, 0.0029111586, 0.07...   0.103509   [0.3273253]  \n",
              "1  [0.06402065, 0.027982308, -0.008169623, 0.0557...   0.094012   [0.2972932]  \n",
              "2  [0.02479708, 0.044157468, -0.025919398, 0.0232...   0.054351  [0.17187147]  \n",
              "3  [0.028466854, 0.06191462, -0.0204664, 0.075028...   0.107607   [0.3402821]  \n",
              "4  [0.024692703, 0.03586695, -0.001174005, 0.0902...   0.110647  [0.34989738]  \n",
              "5  [0.056313634, 0.05153258, -0.012567435, 0.0707...   0.074678  [0.23615363]  \n",
              "6  [-0.020568352, 0.023891881, 0.012835298, 0.099...   0.130083  [0.41135937]  \n",
              "7  [0.0433315, 0.030121252, -0.01772212, 0.060874...   0.100286  [0.31713212]  \n",
              "8  [0.051959544, 0.036277212, 0.013149158, 0.0583...   0.069425  [0.21954209]  \n",
              "9  [-0.026123397, 0.017032402, -0.010330126, 0.05...   0.146839   [0.4643467]  \n",
              "\n",
              "[10 rows x 22 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-5b9c95bc-46c7-4462-a999-8f24829d7925\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>review_id</th>\n",
              "      <th>date</th>\n",
              "      <th>review_rating</th>\n",
              "      <th>title</th>\n",
              "      <th>text</th>\n",
              "      <th>votes</th>\n",
              "      <th>url</th>\n",
              "      <th>language</th>\n",
              "      <th>platform</th>\n",
              "      <th>author_id</th>\n",
              "      <th>...</th>\n",
              "      <th>name</th>\n",
              "      <th>id</th>\n",
              "      <th>description</th>\n",
              "      <th>rating</th>\n",
              "      <th>rating_count</th>\n",
              "      <th>features</th>\n",
              "      <th>combined</th>\n",
              "      <th>embedding</th>\n",
              "      <th>similarity</th>\n",
              "      <th>similarity_2</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>864290614</td>\n",
              "      <td>2022-10-12</td>\n",
              "      <td>1</td>\n",
              "      <td>A large impersonal place with an on time check...</td>\n",
              "      <td>If you are looking for a huge, grand hotel exp...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864290614-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>E488EBBA1F82F16BF878FE274C735941</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title a large impersonal place with an on time...</td>\n",
              "      <td>[0.043491498, -0.012825325, 0.0029111586, 0.07...</td>\n",
              "      <td>0.103509</td>\n",
              "      <td>[0.3273253]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>864049819</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>4</td>\n",
              "      <td>Good hotel with rude waiter</td>\n",
              "      <td>We went to this hotel just this month\\nWe have...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864049819-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>4A830AD8B128F60AC02E83D6B6A530F7</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title good hotel with rude waiter content we w...</td>\n",
              "      <td>[0.06402065, 0.027982308, -0.008169623, 0.0557...</td>\n",
              "      <td>0.094012</td>\n",
              "      <td>[0.2972932]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>863952022</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>5</td>\n",
              "      <td>Fantastic</td>\n",
              "      <td>Absolutely top-notch. Room, service, bed, pill...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863952022-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>AA2958C3E083861E81EEC085671BAA5B</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title fantastic content absolutely topnotch ro...</td>\n",
              "      <td>[0.02479708, 0.044157468, -0.025919398, 0.0232...</td>\n",
              "      <td>0.054351</td>\n",
              "      <td>[0.17187147]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>863793066</td>\n",
              "      <td>2022-10-09</td>\n",
              "      <td>4</td>\n",
              "      <td>Amidst the chaos of Fashion week, their servic...</td>\n",
              "      <td>We stayed during the Paris Fashion Week Chaos....</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863793066-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE4AB96DA3E104846D6D6423C2DAA4C8</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title amidst the chaos of fashion week their s...</td>\n",
              "      <td>[0.028466854, 0.06191462, -0.0204664, 0.075028...</td>\n",
              "      <td>0.107607</td>\n",
              "      <td>[0.3402821]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>863631994</td>\n",
              "      <td>2022-10-08</td>\n",
              "      <td>2</td>\n",
              "      <td>Not worth the effort or money</td>\n",
              "      <td>This hotel is not worth the effort or the pric...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863631994-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE02D713F209AEC684DC6108509E6912</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title not worth the effort or money content th...</td>\n",
              "      <td>[0.024692703, 0.03586695, -0.001174005, 0.0902...</td>\n",
              "      <td>0.110647</td>\n",
              "      <td>[0.34989738]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>862073785</td>\n",
              "      <td>2022-09-26</td>\n",
              "      <td>4</td>\n",
              "      <td>Not quite up to Intercontinental standards</td>\n",
              "      <td>We had a one night stay prior to taking the Eu...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r862073785-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>BA9F96090F35C7A562E550825BAB4B32</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title not quite up to intercontinental standar...</td>\n",
              "      <td>[0.056313634, 0.05153258, -0.012567435, 0.0707...</td>\n",
              "      <td>0.074678</td>\n",
              "      <td>[0.23615363]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>861021031</td>\n",
              "      <td>2022-09-20</td>\n",
              "      <td>5</td>\n",
              "      <td>Luxury in the heart of the city</td>\n",
              "      <td>We were very impressed with the intercontinent...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r861021031-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>CB65D8DF04EEB78702BB03F39BAC6717</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title luxury in the heart of the city content ...</td>\n",
              "      <td>[-0.020568352, 0.023891881, 0.012835298, 0.099...</td>\n",
              "      <td>0.130083</td>\n",
              "      <td>[0.41135937]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>860421664</td>\n",
              "      <td>2022-09-16</td>\n",
              "      <td>5</td>\n",
              "      <td>Beautiful</td>\n",
              "      <td>Visited for my birthday and everything was jus...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r860421664-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>9D8328D86D62AFA560367B6F81565010</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title beautiful content visited for my birthda...</td>\n",
              "      <td>[0.0433315, 0.030121252, -0.01772212, 0.060874...</td>\n",
              "      <td>0.100286</td>\n",
              "      <td>[0.31713212]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>856124006</td>\n",
              "      <td>2022-08-24</td>\n",
              "      <td>5</td>\n",
              "      <td>Great old fashioned quality service</td>\n",
              "      <td>All I can say is we found good old fashioned f...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r856124006-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>82C9562F2314BE52F0CD417EC6034CE2</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title great old fashioned quality service cont...</td>\n",
              "      <td>[0.051959544, 0.036277212, 0.013149158, 0.0583...</td>\n",
              "      <td>0.069425</td>\n",
              "      <td>[0.21954209]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>856016947</td>\n",
              "      <td>2022-08-23</td>\n",
              "      <td>5</td>\n",
              "      <td>Best location and platform to visit Paris</td>\n",
              "      <td>Our family of 4 plus a friend enjoyed the grea...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r856016947-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>266247D26801AA5B479974849CAA8210</td>\n",
              "      <td>...</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title best location and platform to visit pari...</td>\n",
              "      <td>[-0.026123397, 0.017032402, -0.010330126, 0.05...</td>\n",
              "      <td>0.146839</td>\n",
              "      <td>[0.4643467]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>10 rows × 22 columns</p>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5b9c95bc-46c7-4462-a999-8f24829d7925')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-5b9c95bc-46c7-4462-a999-8f24829d7925 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-5b9c95bc-46c7-4462-a999-8f24829d7925');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "cosine_similarity(corpus_embeddings, query_embedding)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "h1Vi8cEE0ZmA",
        "outputId": "b6471c4a-bc5a-4063-9eb2-900395d991d7"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([0.10350932, 0.09401236, 0.05435053, 0.10760665, 0.1106473 ,\n",
              "       0.07467833, 0.13008326, 0.10028599, 0.0694253 , 0.1468393 ],\n",
              "      dtype=float32)"
            ]
          },
          "metadata": {},
          "execution_count": 32
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "#Entire Data"
      ],
      "metadata": {
        "id": "qFvemBkg1taW"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# startTime = time.time()\n",
        "\n",
        "# df_combined[\"embedding\"] = df_combined.combined.apply(lambda x: embedder.encode(x))\n",
        "\n",
        "# executionTime = (time.time() - startTime)\n",
        "# print('Execution time in seconds: ' + str(executionTime))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "avax6lku2MId",
        "outputId": "7f90803e-4173-4845-96fa-f0dfbe8993a5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Execution time in seconds: 234.93274855613708\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# df_combined.to_pickle('/content/drive/MyDrive/Semantic_Search/entire_data.pkl')"
      ],
      "metadata": {
        "id": "G0ygXuhU2MEk"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "##Embedding upload"
      ],
      "metadata": {
        "id": "1wICGbJOEjpL"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd\n",
        "df = pd.read_pickle('/content/drive/MyDrive/Semantic_Search/entire_data.pkl') #to load 123.pkl back to the dataframe df"
      ],
      "metadata": {
        "id": "pN_UffIcrQZj"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "df.head()"
      ],
      "metadata": {
        "id": "zDrGEYrrrdST",
        "outputId": "53403c84-a652-4312-ee10-0775f792aac3",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 687
        }
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   review_id        date  review_rating  \\\n",
              "0  864290614  2022-10-12              1   \n",
              "1  864049819  2022-10-10              4   \n",
              "2  863952022  2022-10-10              5   \n",
              "3  863793066  2022-10-09              4   \n",
              "4  863631994  2022-10-08              2   \n",
              "\n",
              "                                               title  \\\n",
              "0  A large impersonal place with an on time check...   \n",
              "1                        Good hotel with rude waiter   \n",
              "2                                          Fantastic   \n",
              "3  Amidst the chaos of Fashion week, their servic...   \n",
              "4                      Not worth the effort or money   \n",
              "\n",
              "                                                text  votes  \\\n",
              "0  If you are looking for a huge, grand hotel exp...      1   \n",
              "1  We went to this hotel just this month\\nWe have...      1   \n",
              "2  Absolutely top-notch. Room, service, bed, pill...      0   \n",
              "3  We stayed during the Paris Fashion Week Chaos....      0   \n",
              "4  This hotel is not worth the effort or the pric...      0   \n",
              "\n",
              "                                                 url language platform  \\\n",
              "0  /ShowUserReviews-g187147-d207742-r864290614-In...       en   MOBILE   \n",
              "1  /ShowUserReviews-g187147-d207742-r864049819-In...       en   MOBILE   \n",
              "2  /ShowUserReviews-g187147-d207742-r863952022-In...       en    OTHER   \n",
              "3  /ShowUserReviews-g187147-d207742-r863793066-In...       en   MOBILE   \n",
              "4  /ShowUserReviews-g187147-d207742-r863631994-In...       en   MOBILE   \n",
              "\n",
              "                          author_id author_name author_username  \\\n",
              "0  E488EBBA1F82F16BF878FE274C735941      Anna J        AnnaJ250   \n",
              "1  4A830AD8B128F60AC02E83D6B6A530F7   QATAR2007       QATAR2007   \n",
              "2  AA2958C3E083861E81EEC085671BAA5B     aji1376         aji1376   \n",
              "3  DE4AB96DA3E104846D6D6423C2DAA4C8  jelinc2016      jelinc2016   \n",
              "4  DE02D713F209AEC684DC6108509E6912     VikaasK         VikaasK   \n",
              "\n",
              "                                name      id  \\\n",
              "0  InterContinental Paris - Le Grand  207742   \n",
              "1  InterContinental Paris - Le Grand  207742   \n",
              "2  InterContinental Paris - Le Grand  207742   \n",
              "3  InterContinental Paris - Le Grand  207742   \n",
              "4  InterContinental Paris - Le Grand  207742   \n",
              "\n",
              "                                         description  rating  rating_count  \\\n",
              "0  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "1  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "2  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "3  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "4  The InterContinental Paris Le Grand, opened du...     4.5        3517.0   \n",
              "\n",
              "                                            features  \\\n",
              "0  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "1  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "2  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "3  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "4  ['roomFeatures_air conditioning', 'roomFeature...   \n",
              "\n",
              "                                            combined  \\\n",
              "0  title a large impersonal place with an on time...   \n",
              "1  title good hotel with rude waiter content we w...   \n",
              "2  title fantastic content absolutely topnotch ro...   \n",
              "3  title amidst the chaos of fashion week their s...   \n",
              "4  title not worth the effort or money content th...   \n",
              "\n",
              "                                           embedding  \n",
              "0  [0.043491498, -0.012825325, 0.0029111586, 0.07...  \n",
              "1  [0.06402065, 0.027982308, -0.008169623, 0.0557...  \n",
              "2  [0.02479708, 0.044157468, -0.025919398, 0.0232...  \n",
              "3  [0.028466854, 0.06191462, -0.0204664, 0.075028...  \n",
              "4  [0.024692703, 0.03586695, -0.001174005, 0.0902...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-41c8f8ec-5371-4248-8de2-c69643915c0a\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>review_id</th>\n",
              "      <th>date</th>\n",
              "      <th>review_rating</th>\n",
              "      <th>title</th>\n",
              "      <th>text</th>\n",
              "      <th>votes</th>\n",
              "      <th>url</th>\n",
              "      <th>language</th>\n",
              "      <th>platform</th>\n",
              "      <th>author_id</th>\n",
              "      <th>author_name</th>\n",
              "      <th>author_username</th>\n",
              "      <th>name</th>\n",
              "      <th>id</th>\n",
              "      <th>description</th>\n",
              "      <th>rating</th>\n",
              "      <th>rating_count</th>\n",
              "      <th>features</th>\n",
              "      <th>combined</th>\n",
              "      <th>embedding</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>864290614</td>\n",
              "      <td>2022-10-12</td>\n",
              "      <td>1</td>\n",
              "      <td>A large impersonal place with an on time check...</td>\n",
              "      <td>If you are looking for a huge, grand hotel exp...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864290614-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>E488EBBA1F82F16BF878FE274C735941</td>\n",
              "      <td>Anna J</td>\n",
              "      <td>AnnaJ250</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title a large impersonal place with an on time...</td>\n",
              "      <td>[0.043491498, -0.012825325, 0.0029111586, 0.07...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>864049819</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>4</td>\n",
              "      <td>Good hotel with rude waiter</td>\n",
              "      <td>We went to this hotel just this month\\nWe have...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r864049819-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>4A830AD8B128F60AC02E83D6B6A530F7</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>QATAR2007</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title good hotel with rude waiter content we w...</td>\n",
              "      <td>[0.06402065, 0.027982308, -0.008169623, 0.0557...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>863952022</td>\n",
              "      <td>2022-10-10</td>\n",
              "      <td>5</td>\n",
              "      <td>Fantastic</td>\n",
              "      <td>Absolutely top-notch. Room, service, bed, pill...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863952022-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>AA2958C3E083861E81EEC085671BAA5B</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>aji1376</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title fantastic content absolutely topnotch ro...</td>\n",
              "      <td>[0.02479708, 0.044157468, -0.025919398, 0.0232...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>863793066</td>\n",
              "      <td>2022-10-09</td>\n",
              "      <td>4</td>\n",
              "      <td>Amidst the chaos of Fashion week, their servic...</td>\n",
              "      <td>We stayed during the Paris Fashion Week Chaos....</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863793066-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE4AB96DA3E104846D6D6423C2DAA4C8</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>jelinc2016</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title amidst the chaos of fashion week their s...</td>\n",
              "      <td>[0.028466854, 0.06191462, -0.0204664, 0.075028...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>863631994</td>\n",
              "      <td>2022-10-08</td>\n",
              "      <td>2</td>\n",
              "      <td>Not worth the effort or money</td>\n",
              "      <td>This hotel is not worth the effort or the pric...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d207742-r863631994-In...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>DE02D713F209AEC684DC6108509E6912</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>VikaasK</td>\n",
              "      <td>InterContinental Paris - Le Grand</td>\n",
              "      <td>207742</td>\n",
              "      <td>The InterContinental Paris Le Grand, opened du...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>3517.0</td>\n",
              "      <td>['roomFeatures_air conditioning', 'roomFeature...</td>\n",
              "      <td>title not worth the effort or money content th...</td>\n",
              "      <td>[0.024692703, 0.03586695, -0.001174005, 0.0902...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-41c8f8ec-5371-4248-8de2-c69643915c0a')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-41c8f8ec-5371-4248-8de2-c69643915c0a button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-41c8f8ec-5371-4248-8de2-c69643915c0a');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 34
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# search through the reviews for a specific product\n",
        "def search_reviews(df, query, n=5, pprint=True):\n",
        "    query_embedding = embedder.encode(query,show_progress_bar=True)\n",
        "    df[\"similarity\"] = df.embedding.apply(lambda x: cosine_similarity(x, query_embedding.reshape(768,-1)))\n",
        "\n",
        "    results = (\n",
        "        df.sort_values(\"similarity\", ascending=False)\n",
        "        .head(n))\n",
        "\n",
        "    return results"
      ],
      "metadata": {
        "id": "evYheRL02L4q"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "query = 'close to Louvre and great food nearby but not too expensive'"
      ],
      "metadata": {
        "id": "UyfurmO54Fq-"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "results = search_reviews(df,query,10)"
      ],
      "metadata": {
        "id": "pPCccxGY35eQ",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "7422074a79774bfeac1f49349eeb5f92",
            "cc33cf49d05d412ab8f449ac58cacbd7",
            "667da7b3d9be47c8b253bba2156653d0",
            "b8e0ad83569a40bd83ddd7a7e77f163a",
            "725e501c7e8045bbab920884963fcf8d",
            "b1ec07b6f6864896b8d1c1836c96e425",
            "686b9e3f9b504daf9f24f28562b7d2a8",
            "1a06d78d112e427294ab1c534b7632a0",
            "2633a4eb2908471096b30b1fbd91ae79",
            "ac1dabd7669045b087cab437b2c9f06b",
            "5d7d01d7edb04fcdb8d4b3c24a5ea803"
          ]
        },
        "outputId": "86e5939c-0571-4a47-edcc-4a6a6bacc62a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Batches:   0%|          | 0/1 [00:00<?, ?it/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "7422074a79774bfeac1f49349eeb5f92"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "results"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "fLxyOSxJEUvv",
        "outputId": "9d8ec14c-dc85-4430-d3f3-5509b2bf77e6"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "       review_id        date  review_rating  \\\n",
              "207    834926510  2022-04-17              5   \n",
              "10033  858737654  2022-09-06              4   \n",
              "28275  801368976  2021-08-02              5   \n",
              "286    735951747  2019-12-31              5   \n",
              "18775  859930656  2022-09-13              5   \n",
              "28637  693556860  2019-07-28              4   \n",
              "12729  825896939  2022-01-25              5   \n",
              "15162  750051429  2020-03-09              5   \n",
              "6233   227310602  2014-09-06              5   \n",
              "21898  839455495  2022-05-22              5   \n",
              "\n",
              "                                                title  \\\n",
              "207                               Best Paris Location   \n",
              "10033                 Great hotel close to the Louvre   \n",
              "28275  Best location, elegant, clean and great rooms.   \n",
              "286                       Five Star hotel near Louvre   \n",
              "18775                         Best location in Paris!   \n",
              "28637                   Great location- Would return    \n",
              "12729                             Great place to stay   \n",
              "15162                 ideal location for seeing Paris   \n",
              "6233   Fantastic place, good value and well connected   \n",
              "21898    Wonderful boutique hotel close to the Louvre   \n",
              "\n",
              "                                                    text  votes  \\\n",
              "207    You can’t beat the location of this hotel! Rig...      0   \n",
              "10033  This was a great location with easy access to ...      1   \n",
              "28275  We spent 5 nights at the lovely Hotel Da Vinci...      1   \n",
              "286    Boutique hotel offering great rooms, service, ...      1   \n",
              "18775  The location is absolutely perfect, right in t...      0   \n",
              "28637  We stayed here for two nights in July. The hot...      2   \n",
              "12729  Wonderful location, near Notre Dame and Latin ...      0   \n",
              "15162  First class hotel ,great location ,short walk ...      2   \n",
              "6233   A real find; it's comfortable, quiet, and welc...      1   \n",
              "21898  A very nice hotel in a quiet plaza two blocks ...      0   \n",
              "\n",
              "                                                     url language platform  \\\n",
              "207    /ShowUserReviews-g187147-d228728-r834926510-Re...       en   MOBILE   \n",
              "10033  /ShowUserReviews-g187147-d228694-r858737654-Ho...       en   MOBILE   \n",
              "28275  /ShowUserReviews-g187147-d6675948-r801368976-H...       en   MOBILE   \n",
              "286    /ShowUserReviews-g187147-d228728-r735951747-Re...       en   MOBILE   \n",
              "18775  /ShowUserReviews-g187147-d587294-r859930656-Th...       en   MOBILE   \n",
              "28637  /ShowUserReviews-g187147-d236439-r693556860-Gr...       en   MOBILE   \n",
              "12729  /ShowUserReviews-g187147-d282186-r825896939-Ho...       en    OTHER   \n",
              "15162  /ShowUserReviews-g187147-d207573-r750051429-Ho...       en    OTHER   \n",
              "6233   /ShowUserReviews-g187147-d613301-r227310602-A_...       en   MOBILE   \n",
              "21898  /ShowUserReviews-g187147-d617625-r839455495-Gr...       en    OTHER   \n",
              "\n",
              "                              author_id  ...    author_username  \\\n",
              "207    58EB5EA5E1A2FCD598F7F7F9D988306A  ...  Camper46227911888   \n",
              "10033  107486993911F044C7A86C88BD8CBE6C  ...          kahnfeldt   \n",
              "28275  1FEA86D03026BB83FEB43E29EA2B2D0D  ...        marydresser   \n",
              "286    F483597920CDD1233993458D4A5DDAC3  ...        elicS9200RN   \n",
              "18775  9F2B88B47C00035A83A5743F1B6B6590  ...            tobique   \n",
              "28637  69614878AEA16AB7FEA9742F42F557B6  ...              KerJM   \n",
              "12729  34FA5E075E65F727696A79CBAA8E2BB2  ...              liggy   \n",
              "15162  E95CD9F1B9A20F7E11CAEB980FABD826  ...            aengusc   \n",
              "6233   466D8F84569A260E4A3F39A32DDB3AC7  ...           bertiebr   \n",
              "21898  F68553597AC1CF5735AA52480B978199  ...       johnhR7616AX   \n",
              "\n",
              "                                  name       id  \\\n",
              "207    Renaissance Paris Vendome Hotel   228728   \n",
              "10033            Hotel Malte - Astotel   228694   \n",
              "28275                   Hotel Da Vinci  6675948   \n",
              "286    Renaissance Paris Vendome Hotel   228728   \n",
              "18775       The Westin Paris - Vendôme   587294   \n",
              "28637          Grand Hotel des Balcons   236439   \n",
              "12729       Hôtel Henri IV Rive Gauche   282186   \n",
              "15162    Hotel Left Bank Saint Germain   207573   \n",
              "6233                   A Room In Paris   613301   \n",
              "21898      Grand Hotel du Palais Royal   617625   \n",
              "\n",
              "                                             description rating  rating_count  \\\n",
              "207    Bask in the lavish lifestyle of our boutique h...    4.5        1618.0   \n",
              "10033  Located in the 2nd district next to the Stock ...    5.0        2285.0   \n",
              "28275                                                NaN    NaN           NaN   \n",
              "286    Bask in the lavish lifestyle of our boutique h...    4.5        1618.0   \n",
              "18775                                                NaN    4.0        4438.0   \n",
              "28637  Located in the heart of the Saint Germain dist...    4.5         900.0   \n",
              "12729  L’Hôtel Henri IV Rive Gauche vous invite à un ...    4.5         713.0   \n",
              "15162                                                NaN    NaN           NaN   \n",
              "6233   Right in the city centre of Paris 5 beautiful ...    4.5         237.0   \n",
              "21898                                                NaN    NaN           NaN   \n",
              "\n",
              "                                                features  \\\n",
              "207    ['roomFeatures_bathrobes', 'roomFeatures_air c...   \n",
              "10033  ['roomFeatures_allergy-free room', 'roomFeatur...   \n",
              "28275                                                NaN   \n",
              "286    ['roomFeatures_bathrobes', 'roomFeatures_air c...   \n",
              "18775  ['roomFeatures_bathrobes', 'roomFeatures_air c...   \n",
              "28637  ['roomFeatures_housekeeping', 'roomFeatures_pr...   \n",
              "12729  ['roomFeatures_soundproof rooms', 'roomFeature...   \n",
              "15162                                                NaN   \n",
              "6233   ['roomFeatures_seating area', 'roomFeatures_ir...   \n",
              "21898                                                NaN   \n",
              "\n",
              "                                                combined  \\\n",
              "207    title best paris location content you cant bea...   \n",
              "10033  title great hotel close to the louvre content ...   \n",
              "28275  title best location elegant clean and great ro...   \n",
              "286    title five star hotel near louvre content bout...   \n",
              "18775  title best location in paris content the locat...   \n",
              "28637  title great location would return content we s...   \n",
              "12729  title great place to stay content wonderful lo...   \n",
              "15162  title ideal location for seeing paris content ...   \n",
              "6233   title fantastic place good value and well conn...   \n",
              "21898  title wonderful boutique hotel close to the lo...   \n",
              "\n",
              "                                               embedding    similarity  \n",
              "207    [-0.005801252, 0.0035435406, 0.006681457, 0.08...  [0.71940964]  \n",
              "10033  [0.035538793, 0.013498049, -0.008496209, 0.054...  [0.71239954]  \n",
              "28275  [-0.044006966, 0.031862944, -0.011379889, 0.08...   [0.6976604]  \n",
              "286    [0.03347977, -0.0011467149, 0.01731024, 0.0687...   [0.6969174]  \n",
              "18775  [-0.055300996, 0.001160523, 0.006293006, 0.048...  [0.69524217]  \n",
              "28637  [-0.043633692, 0.0323222, 0.00058815937, 0.057...  [0.68948245]  \n",
              "12729  [-0.02527761, 0.0812405, 0.0018354232, 0.06247...   [0.6886231]  \n",
              "15162  [-0.025395762, 0.03988882, 0.014856455, 0.0537...   [0.6818383]  \n",
              "6233   [-0.018471478, 0.0007073297, 0.015793512, 0.08...   [0.6798036]  \n",
              "21898  [0.04119004, 0.011581765, -0.0026638596, 0.061...   [0.6783131]  \n",
              "\n",
              "[10 rows x 21 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3319fe13-1a47-406c-a1dd-7936fc046e8a\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>review_id</th>\n",
              "      <th>date</th>\n",
              "      <th>review_rating</th>\n",
              "      <th>title</th>\n",
              "      <th>text</th>\n",
              "      <th>votes</th>\n",
              "      <th>url</th>\n",
              "      <th>language</th>\n",
              "      <th>platform</th>\n",
              "      <th>author_id</th>\n",
              "      <th>...</th>\n",
              "      <th>author_username</th>\n",
              "      <th>name</th>\n",
              "      <th>id</th>\n",
              "      <th>description</th>\n",
              "      <th>rating</th>\n",
              "      <th>rating_count</th>\n",
              "      <th>features</th>\n",
              "      <th>combined</th>\n",
              "      <th>embedding</th>\n",
              "      <th>similarity</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>207</th>\n",
              "      <td>834926510</td>\n",
              "      <td>2022-04-17</td>\n",
              "      <td>5</td>\n",
              "      <td>Best Paris Location</td>\n",
              "      <td>You can’t beat the location of this hotel! Rig...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d228728-r834926510-Re...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>58EB5EA5E1A2FCD598F7F7F9D988306A</td>\n",
              "      <td>...</td>\n",
              "      <td>Camper46227911888</td>\n",
              "      <td>Renaissance Paris Vendome Hotel</td>\n",
              "      <td>228728</td>\n",
              "      <td>Bask in the lavish lifestyle of our boutique h...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>1618.0</td>\n",
              "      <td>['roomFeatures_bathrobes', 'roomFeatures_air c...</td>\n",
              "      <td>title best paris location content you cant bea...</td>\n",
              "      <td>[-0.005801252, 0.0035435406, 0.006681457, 0.08...</td>\n",
              "      <td>[0.71940964]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10033</th>\n",
              "      <td>858737654</td>\n",
              "      <td>2022-09-06</td>\n",
              "      <td>4</td>\n",
              "      <td>Great hotel close to the Louvre</td>\n",
              "      <td>This was a great location with easy access to ...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d228694-r858737654-Ho...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>107486993911F044C7A86C88BD8CBE6C</td>\n",
              "      <td>...</td>\n",
              "      <td>kahnfeldt</td>\n",
              "      <td>Hotel Malte - Astotel</td>\n",
              "      <td>228694</td>\n",
              "      <td>Located in the 2nd district next to the Stock ...</td>\n",
              "      <td>5.0</td>\n",
              "      <td>2285.0</td>\n",
              "      <td>['roomFeatures_allergy-free room', 'roomFeatur...</td>\n",
              "      <td>title great hotel close to the louvre content ...</td>\n",
              "      <td>[0.035538793, 0.013498049, -0.008496209, 0.054...</td>\n",
              "      <td>[0.71239954]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>28275</th>\n",
              "      <td>801368976</td>\n",
              "      <td>2021-08-02</td>\n",
              "      <td>5</td>\n",
              "      <td>Best location, elegant, clean and great rooms.</td>\n",
              "      <td>We spent 5 nights at the lovely Hotel Da Vinci...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d6675948-r801368976-H...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>1FEA86D03026BB83FEB43E29EA2B2D0D</td>\n",
              "      <td>...</td>\n",
              "      <td>marydresser</td>\n",
              "      <td>Hotel Da Vinci</td>\n",
              "      <td>6675948</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>title best location elegant clean and great ro...</td>\n",
              "      <td>[-0.044006966, 0.031862944, -0.011379889, 0.08...</td>\n",
              "      <td>[0.6976604]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>286</th>\n",
              "      <td>735951747</td>\n",
              "      <td>2019-12-31</td>\n",
              "      <td>5</td>\n",
              "      <td>Five Star hotel near Louvre</td>\n",
              "      <td>Boutique hotel offering great rooms, service, ...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d228728-r735951747-Re...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>F483597920CDD1233993458D4A5DDAC3</td>\n",
              "      <td>...</td>\n",
              "      <td>elicS9200RN</td>\n",
              "      <td>Renaissance Paris Vendome Hotel</td>\n",
              "      <td>228728</td>\n",
              "      <td>Bask in the lavish lifestyle of our boutique h...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>1618.0</td>\n",
              "      <td>['roomFeatures_bathrobes', 'roomFeatures_air c...</td>\n",
              "      <td>title five star hotel near louvre content bout...</td>\n",
              "      <td>[0.03347977, -0.0011467149, 0.01731024, 0.0687...</td>\n",
              "      <td>[0.6969174]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18775</th>\n",
              "      <td>859930656</td>\n",
              "      <td>2022-09-13</td>\n",
              "      <td>5</td>\n",
              "      <td>Best location in Paris!</td>\n",
              "      <td>The location is absolutely perfect, right in t...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d587294-r859930656-Th...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>9F2B88B47C00035A83A5743F1B6B6590</td>\n",
              "      <td>...</td>\n",
              "      <td>tobique</td>\n",
              "      <td>The Westin Paris - Vendôme</td>\n",
              "      <td>587294</td>\n",
              "      <td>NaN</td>\n",
              "      <td>4.0</td>\n",
              "      <td>4438.0</td>\n",
              "      <td>['roomFeatures_bathrobes', 'roomFeatures_air c...</td>\n",
              "      <td>title best location in paris content the locat...</td>\n",
              "      <td>[-0.055300996, 0.001160523, 0.006293006, 0.048...</td>\n",
              "      <td>[0.69524217]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>28637</th>\n",
              "      <td>693556860</td>\n",
              "      <td>2019-07-28</td>\n",
              "      <td>4</td>\n",
              "      <td>Great location- Would return</td>\n",
              "      <td>We stayed here for two nights in July. The hot...</td>\n",
              "      <td>2</td>\n",
              "      <td>/ShowUserReviews-g187147-d236439-r693556860-Gr...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>69614878AEA16AB7FEA9742F42F557B6</td>\n",
              "      <td>...</td>\n",
              "      <td>KerJM</td>\n",
              "      <td>Grand Hotel des Balcons</td>\n",
              "      <td>236439</td>\n",
              "      <td>Located in the heart of the Saint Germain dist...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>900.0</td>\n",
              "      <td>['roomFeatures_housekeeping', 'roomFeatures_pr...</td>\n",
              "      <td>title great location would return content we s...</td>\n",
              "      <td>[-0.043633692, 0.0323222, 0.00058815937, 0.057...</td>\n",
              "      <td>[0.68948245]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12729</th>\n",
              "      <td>825896939</td>\n",
              "      <td>2022-01-25</td>\n",
              "      <td>5</td>\n",
              "      <td>Great place to stay</td>\n",
              "      <td>Wonderful location, near Notre Dame and Latin ...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d282186-r825896939-Ho...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>34FA5E075E65F727696A79CBAA8E2BB2</td>\n",
              "      <td>...</td>\n",
              "      <td>liggy</td>\n",
              "      <td>Hôtel Henri IV Rive Gauche</td>\n",
              "      <td>282186</td>\n",
              "      <td>L’Hôtel Henri IV Rive Gauche vous invite à un ...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>713.0</td>\n",
              "      <td>['roomFeatures_soundproof rooms', 'roomFeature...</td>\n",
              "      <td>title great place to stay content wonderful lo...</td>\n",
              "      <td>[-0.02527761, 0.0812405, 0.0018354232, 0.06247...</td>\n",
              "      <td>[0.6886231]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15162</th>\n",
              "      <td>750051429</td>\n",
              "      <td>2020-03-09</td>\n",
              "      <td>5</td>\n",
              "      <td>ideal location for seeing Paris</td>\n",
              "      <td>First class hotel ,great location ,short walk ...</td>\n",
              "      <td>2</td>\n",
              "      <td>/ShowUserReviews-g187147-d207573-r750051429-Ho...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>E95CD9F1B9A20F7E11CAEB980FABD826</td>\n",
              "      <td>...</td>\n",
              "      <td>aengusc</td>\n",
              "      <td>Hotel Left Bank Saint Germain</td>\n",
              "      <td>207573</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>title ideal location for seeing paris content ...</td>\n",
              "      <td>[-0.025395762, 0.03988882, 0.014856455, 0.0537...</td>\n",
              "      <td>[0.6818383]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6233</th>\n",
              "      <td>227310602</td>\n",
              "      <td>2014-09-06</td>\n",
              "      <td>5</td>\n",
              "      <td>Fantastic place, good value and well connected</td>\n",
              "      <td>A real find; it's comfortable, quiet, and welc...</td>\n",
              "      <td>1</td>\n",
              "      <td>/ShowUserReviews-g187147-d613301-r227310602-A_...</td>\n",
              "      <td>en</td>\n",
              "      <td>MOBILE</td>\n",
              "      <td>466D8F84569A260E4A3F39A32DDB3AC7</td>\n",
              "      <td>...</td>\n",
              "      <td>bertiebr</td>\n",
              "      <td>A Room In Paris</td>\n",
              "      <td>613301</td>\n",
              "      <td>Right in the city centre of Paris 5 beautiful ...</td>\n",
              "      <td>4.5</td>\n",
              "      <td>237.0</td>\n",
              "      <td>['roomFeatures_seating area', 'roomFeatures_ir...</td>\n",
              "      <td>title fantastic place good value and well conn...</td>\n",
              "      <td>[-0.018471478, 0.0007073297, 0.015793512, 0.08...</td>\n",
              "      <td>[0.6798036]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21898</th>\n",
              "      <td>839455495</td>\n",
              "      <td>2022-05-22</td>\n",
              "      <td>5</td>\n",
              "      <td>Wonderful boutique hotel close to the Louvre</td>\n",
              "      <td>A very nice hotel in a quiet plaza two blocks ...</td>\n",
              "      <td>0</td>\n",
              "      <td>/ShowUserReviews-g187147-d617625-r839455495-Gr...</td>\n",
              "      <td>en</td>\n",
              "      <td>OTHER</td>\n",
              "      <td>F68553597AC1CF5735AA52480B978199</td>\n",
              "      <td>...</td>\n",
              "      <td>johnhR7616AX</td>\n",
              "      <td>Grand Hotel du Palais Royal</td>\n",
              "      <td>617625</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>title wonderful boutique hotel close to the lo...</td>\n",
              "      <td>[0.04119004, 0.011581765, -0.0026638596, 0.061...</td>\n",
              "      <td>[0.6783131]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>10 rows × 21 columns</p>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3319fe13-1a47-406c-a1dd-7936fc046e8a')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-3319fe13-1a47-406c-a1dd-7936fc046e8a button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-3319fe13-1a47-406c-a1dd-7936fc046e8a');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 45
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# hlist = []\n",
        "# for r in results.index:\n",
        "#     if results.name[r] not in hlist:\n",
        "#         smalldf = results.loc[results.name == results.name[r]]\n",
        "#         print('Hotel name: {}'.format(results.name[r]))\n",
        "#         print('Price per night: {}'.format(results.price_per_night.max()))\n",
        "#         print('Description: {}'.format(results.description[r]))\n",
        "#         print('Similarity Score: {}'.format(smalldf.similarity.max()))\n",
        "#         print('Rating Score: {}'.format(smalldf.rating.max()))\n",
        "\n",
        "#         print('\\n')\n",
        "#         print('Relevant Reviews:')\n",
        "#         for s in smalldf.index:\n",
        "#             print(smalldf.text[s])\n",
        "#             print('\\n')\n",
        "#         print('xxx---xxx')\n",
        "#         print('\\n')\n",
        "#         hlist.append(results.name[r])\n",
        ""
      ],
      "metadata": {
        "id": "GyngoMmP3_Bh"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# df_combined.shape[1]"
      ],
      "metadata": {
        "id": "5zivw3-tDQR7"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# df = df_combined.copy()"
      ],
      "metadata": {
        "id": "KjxjcDjWEN6d"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "Take all the reviews which are closest to the query, and groupby the hotel name"
      ],
      "metadata": {
        "id": "sCbn6KQFFEq8"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def search(query):\n",
        "  n = 15\n",
        "  query_embedding = embedder.encode(query)\n",
        "  df[\"similarity\"] = df.embedding.apply(lambda x: cosine_similarity(x, query_embedding.reshape(768,-1)))\n",
        "\n",
        "  results = (\n",
        "      df.sort_values(\"similarity\", ascending=False)\n",
        "      .head(n))\n",
        "\n",
        "  resultlist = []\n",
        "\n",
        "  hlist = []\n",
        "  for r in results.index:\n",
        "      if results.name[r] not in hlist:\n",
        "          smalldf = results.loc[results.name == results.name[r]]\n",
        "          if smalldf.shape[1] > 3:\n",
        "            smalldf = smalldf[:3]\n",
        "\n",
        "          resultlist.append(\n",
        "          {\n",
        "            \"name\":results.name[r],\n",
        "            \"score\": smalldf.similarity[r][0],\n",
        "            \"rating\": smalldf.rating.max(),\n",
        "            \"relevant_reviews\": [ smalldf.text[s] for s in smalldf.index]\n",
        "          })\n",
        "          hlist.append(results.name[r])\n",
        "  return resultlist\n",
        "\n",
        "\n"
      ],
      "metadata": {
        "id": "eAT2fzR1E3t-"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "search('near Eiffel')"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_S89aiySE7QR",
        "outputId": "deeef6c0-3610-410d-b9b4-6f8b88408180"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[{'name': 'Relais 12bis B&B',\n",
              "  'score': 0.6887854,\n",
              "  'rating': 5.0,\n",
              "  'relevant_reviews': ['We could not have been more pleased with our eight night stay at Relais 12bis.  Leo is a gracious host, doing everything possible to make us feel welcome and comfortable.  The rooms and public areas are beautifully maintained with great attention to detail; and the breakfast delicious.  We will definitely return and recommend this home away from home to our friends.',\n",
              "   \"It was my family of 6's first time in Paris. Travelled with my mom, aunt, sister, brother in law and their 2-year old. We booked 3 of their rooms for 4 nights. The owner Philippe and his wife, son Leon were excellent hosts.  Beautiful historic building, upgraded rooms even better than it looks in the pictures! Loved everything about it- rooms, bathrooms and beds were so comfortable and had daily housekeeping services. The breakfasts every morning were homemade- OJ, jams, eggs, toast, cold cuts, artisan cheeses and best selection of French teas and coffee. 5 minute walk to the Eiffel tower, restaurants, subway/trains, city bus tours. It was a dream trip, very memorable, would highly recommend this place! \",\n",
              "   'This place is a rare gem! You cannot find a more perfect location in Paris! This B&B is located in walking distance to the Eiffel Tower (max 5 minute walk) and the Seine River. Centrally located close to plenty of restaurants, cafes and the subway station. \\n\\nLoved the historic building with modern touches. We had a corner room with a street view. The room was clean and bathroom was very spacious.\\n\\nThe owners were extremely hospitable and eager to assist. The complementary breakfast, which included an assortment croissants, meats, cheeses and eggs was also fantastic! \\n\\nI wish we had more time to stay in Paris! We will definitely stay at Relais 12bis B&B upon our return! Was a great stay! ']},\n",
              " {'name': 'Hotel de la Paix Tour Eiffel',\n",
              "  'score': 0.6828116,\n",
              "  'rating': 4.5,\n",
              "  'relevant_reviews': [\"Close to Eiffel Tower and other areas. Quiet, small street. Staff was excellent. If you are not used to or like smaller hotels and rooms or if you are on the bigger/taller size don't book you'll be a bit uncomfortable. For people wanting to experience the real Paris and Europe and don't mind the smaller rooms,it is excellent.\",\n",
              "   'Modern, comfortable room on a charming street. Hotel staff very welcoming and helpful. Quick walk to the Eiffel Tower, many restaurants and metro stations. Big plus for me was the dark curtains that completely blocked out the sun in the morning!']},\n",
              " {'name': 'Pullman Paris Eiffel Tower Hotel',\n",
              "  'score': 0.68056166,\n",
              "  'rating': 4.0,\n",
              "  'relevant_reviews': ['Five star level of welcome and service.\\nExcellent location with great value, close to everything.  The view of the Eiffel ToweL is fabolous. Ideal  for a romantic getaway. Very nice event inside the hôtel.. \\nWell located, surrounded by restaurants, clean, air conditioning, plugs, nice, really recommend it, in a nice area near the Eiffel tower, in the heart of Paris',\n",
              "   'Very good located in the center of Paris. Cosy rooms, comfy beds and friendly staff. Plenty of beautyful cafes, bars and restaurantes around. Louvre, Seine, Eiffel Tower everything within 30-60 min walking distance.']},\n",
              " {'name': 'Hotel Parc St. Severin - Esprit de France',\n",
              "  'score': 0.6659096,\n",
              "  'rating': 4.5,\n",
              "  'relevant_reviews': ['Great location in the 5th arrondissement near tons of good restaurants and within walking distance from Notre Dame (under reconstruction) and many other famous Paris venues.  Comfortable, quiet, and friendly hotel.  Special thanks to Carolina for being so helpful during our short stay.  Definitely recommend staying here and I will explore their other hotels too.']},\n",
              " {'name': 'Hotel Plaza Elysees',\n",
              "  'score': 0.6604614,\n",
              "  'rating': nan,\n",
              "  'relevant_reviews': [\"Located at the Arc de Triomphe  end of Boulevard Haussmann, you will find yourself about a 5 minute walk from the Champs Elysees and the Georges V metro stop. Our room was small, but had everything you need for a weekend break. I'd recommend asking for a rear facing room to save yourself any noise from the street. Staff were friendly and helpful.\"]},\n",
              " {'name': 'Hotel Elysees Union',\n",
              "  'score': 0.65854895,\n",
              "  'rating': nan,\n",
              "  'relevant_reviews': ['Just 1. 4 kms by walk away from the Eiffel Tower, makes this hotels location prime.\\nEasy access to metro. \\nGood family rooms. Friendly staff. \\nVery near to arc de triumph and champs Élysées. \\nTake the family room which is on the 4th floor. \\nBreakfast is good . They allow late check out upon request.']},\n",
              " {'name': 'Hotel de Sers',\n",
              "  'score': 0.6553322,\n",
              "  'rating': nan,\n",
              "  'relevant_reviews': ['Boutique hotel with a contemporary charming decor, excellent money value and very close to the Champs Élysees and avenue Montaigne.\\nMany rooms with balcony and Eiffeil Tower view. Nice restaurant.Nespresso machine and nice fitness. \\n\\n ']},\n",
              " {'name': 'Hotel du Levant',\n",
              "  'score': 0.65405464,\n",
              "  'rating': nan,\n",
              "  'relevant_reviews': [\"Great charm, great included breakfast, inexpensive small single rooms, terrific location near St. Chapelle and Notre Dame.  Located on Rue de L'Harpe in the midst of hundreds of restaurants and charming streets in the Left Bank.\"]},\n",
              " {'name': 'Hotel Villa Saxe Eiffel',\n",
              "  'score': 0.6507034,\n",
              "  'rating': 4.5,\n",
              "  'relevant_reviews': ['Quiet and nice hotel in Paris center close to many of the top attractions in Paris. Friendly staff, nice market in the street on Thursday and Saturday. Very close to UNESCO headquarters and within easy walking distance to the Eiffel tower']},\n",
              " {'name': '3 Ducks Hostel',\n",
              "  'score': 0.6492225,\n",
              "  'rating': 4.0,\n",
              "  'relevant_reviews': ['Very close to the eiffel tower,  about 15-20 minute walk. Not many comun areas only the bar, the staff was ok. \\nI general a good place to stay because is near some major spots but not many friendly staff, the rooms were clean and comfy']},\n",
              " {'name': 'Citadines Tour Eiffel Paris',\n",
              "  'score': 0.6447806,\n",
              "  'rating': 4.5,\n",
              "  'relevant_reviews': ['If you are not looking for 5 star hotel service but a good apartment hotel, this is the place!Right in front of the apartment, you could enjoy Open-air Marche`and easy Gourmet shops.Metro station is also in front of apartment door! ']}]"
            ]
          },
          "metadata": {},
          "execution_count": 47
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "dphvDOf_E433"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "#Building the API"
      ],
      "metadata": {
        "id": "Yj2lceIaFcjk"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "import gradio as gr\n",
        "\n",
        "def search(query):\n",
        "  n = 15\n",
        "  query_embedding = embedder.encode(query)\n",
        "  df[\"similarity\"] = df.embedding.apply(lambda x: cosine_similarity(x, query_embedding.reshape(768,-1)))\n",
        "\n",
        "  results = (\n",
        "      df.sort_values(\"similarity\", ascending=False)\n",
        "      .head(n))\n",
        "\n",
        "  resultlist = []\n",
        "\n",
        "  hlist = []\n",
        "  for r in results.index:\n",
        "      if results.name[r] not in hlist:\n",
        "          smalldf = results.loc[results.name == results.name[r]]\n",
        "          smallarr = smalldf.similarity[r].max()\n",
        "          sm =smalldf.rating[r].mean()\n",
        "\n",
        "          if smalldf.shape[1] > 3:\n",
        "            smalldf = smalldf[:3]\n",
        "\n",
        "          resultlist.append(\n",
        "          {\n",
        "            \"name\":results.name[r],\n",
        "            \"description\":results.description[r],\n",
        "            \"relevance score\": smallarr.tolist(),\n",
        "            \"rating\": sm.tolist(),\n",
        "            \"relevant_reviews\": [ smalldf.text[s] for s in smalldf.index]\n",
        "          })\n",
        "          hlist.append(results.name[r])\n",
        "  return resultlist\n",
        "\n",
        "def greet(query):\n",
        "    bm25 = search(query)\n",
        "    return bm25\n",
        "\n",
        "demo = gr.Interface(fn=greet, inputs=\"text\", outputs=\"json\")\n",
        "\n",
        "demo.launch(share=True)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 612
        },
        "id": "9C0KjUJK42hM",
        "outputId": "4009520c-12cb-4c05-c8a1-5450f85a7fb0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Colab notebook detected. To show errors in colab notebook, set debug=True in launch()\n",
            "Running on public URL: https://918c66334fd15789aa.gradio.live\n",
            "\n",
            "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<div><iframe src=\"https://918c66334fd15789aa.gradio.live\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": []
          },
          "metadata": {},
          "execution_count": 48
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#\n"
      ],
      "metadata": {
        "id": "cmtidwtJDv_D"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "AMlNHxBKED5t"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}